Milan went two points clear of fierce rivals Inter at the top of Serie A with a hard-fought 1-0 win over third-placed Napoli on Sunday night.
In a game of few chances the Rossoneri grabbed the winner just after the interval through Olivier Giroud, and their hosts never seriously looked like scoring themselves.
The first half was a throwback to the low-scoring Serie A of yesteryear with both defences dominating. In total we were treated to a pitiful five combined shots in the opening 45 minutes with mistakes in the final third common.
The best chance of the half probably fell to Amir Rrahmani inside two minutes, but he could not finish when the ball dropped kindly to him from a corner. Both sides also had penalty appeals waved away, perhaps controversially.
After the break the match thankfully perked up with Giroud turning in Davide Calabria's daisy-cutting cross-cum-shot in the area to make it 1-0. Milan used the strike as a springboard to dominate proceedings with Ismael Bennacer seeing a curling effort well saved by Ospina.
Napoli did eventually step up the intensity, though they continued to struggle to carve out clear-cut opportunities. Adam Ounas went close after coming on as a sub, bending an effort narrowly wide of the far post from the edge of the box.
The game became increasingly stretched as Napoli searched for a season-salvaging leveller but Milan defended stoically, hanging on fairly comfortably for the three points. They should have even made the scoreline more comfortable at the death, only for Alexis Saelemaekers to blaze over following a swift counter attack.
The result sends Stefano Pioli's side to the Serie A summit, although second-placed Inter do possess a game in hand.
Here are your player ratings from Naples...
NAPOLI PLAYER RATINGS
1. Goalkeeper & defenders
David Ospina (GK) - 7/10 - Made a couple of decent saves to keep his side competitive.
Giovanni Di Lorenzo (RB) - 7/10 - Napoli's most impressive attacking outlet. His overlaps were tremendous throughout. His teammates further up the pitch needed to show similar urgency.
Amir Rrahmani (CB) - 6/10 - Missed a good chance in the first half. Passed the ball well.
Kalidou Koulibaly (CB) - 6/10 - Booked for a dangerous challenge in the first half. Fairly settled afterwards.
Mario Rui (LB) - 5/10 - Nowhere near as dangerous as his right-sided counterpart.
Fabian Ruiz (CM) - 5/10 - Energy was there but looked far from polished in a creative sense. Subbed before the end.
Stanislav Lobotka (CM) - 5/10 - Kept possession well but needed to be more positive more frequently.
Piotr Zielinski (AM) - 4/10 - Neat on the ball but badly needed to get closer to the isolated Osimhen up front.
Matteo Politano (RW) - 4/10 - So frustrating. He seemingly never made the right choice when in sight of goal but was lively.
Victor Osimhen (ST) - 5/10 - Maybe should have had a penalty early on. Kept making the right runs but there was not service.
Lorenzo Insigne (LW) - 2/10 - Dreadful before the break, making a string of basic errors. Poor decision making throughout and rightfully dragged off.
Adam Ounas (RW) - 6/10 - Added something when he came on, curling an effort narrowly wide.
Elif Elmas (LW) - 5/10 - Little influence.
Dries Mertens (AM) - N/A
Andre Zambo Anguissa (CM)) - N/A
Hirving Lozano (CM) - N/A
MILAN PLAYER RATINGS
5. Goalkeeper & defenders
Mike Maignan (GK) - 7/10 - Did not have many saves to make but he commanded his area.
Davide Calabria (RB) - 7/10 - Created the goal with what was probably a shot. Energy was superb.
Fikayo Tomori (CB) - 6/10 - Perhaps fortunate to not concede a penalty before the interval.
Pierre Kalulu (CB) - 7/10 - An authoritative display. He will need to keep this form up with Milan short on quality at centre-back.
Theo Hernandez (LB) - 7/10 - Typically intense display. Did not give Politano an inch and his crossing was not bad too.
Sandro Tonali (CM) - 6/10 - Showed plenty of aggression and did a decent job of keeping tabs on Napoli's danger men.
Ismael Bennacer (CM) - 7/10 - Popped up in some dangerous areas and fired away some shots. Might have got a penalty.
Franck Kessie (AM) - 6/10 - Selected over Brahim Diaz as a number ten. Not massively influential but useful out of possession.
Junior Messias (RW) - 4/10 - Passing the ball to an advertising hoarding under no pressure summed up a very meh display.
Olivier Giroud (ST) - 7/10 - A frustrating first half. He committed three fouls on Napoli defenders and picked up a bad cut. Made up for that by netting the winner.
Rafael Leao (LW) - 6/10 - Pulled a few tricks out to spice up a drab game early on. Was always trying something even if it did not come off 100% of the time.
Ante Rebic (ST) - 5/10 - Not as effective as Giroud at holding the ball up.
Rade Krunic (CM) - 5/10 - Little to report.
Alexis Saelemaekers (RW) - 4/10 - Missed a sitter at the end.
Alessandro Florenzi (RB) - N/A
Zlatan Ibrahimovic (ST) - N/A
For more from Matt O’Connor-Simpson, follow him on Twitter