AC Milan edged ahead in the Serie A title race as Olivier Giroud gave them what could prove a crucial victory over fellow challengers Napoli.
The French striker stuck out a boot to steer in Davide Calabria’s low, driven cross early in the second half.
Napoli pushed hard in search of a route back into the game but could not find a way past a stubborn visitors defence.
The win takes Milan top on 60 points, two points better than fierce rivals Inter Milan and three ahead of Napoli.
It was a high-quality game between two sides, but one low on clear goal-scoring chances.
Victor Osimhen saw a couple of shots saved by Mike Maignan and substitute Adam Ounas flashed an effort wide as the home side desperately sought parity.
Milan felt they should have had a penalty for a foul by Kalidou Koulibaly on Ismael Bennacer but the referee waved away the shouts, as he did at the other end for Fikayo Tomori’s challenge on Osimhen.
It was an eventful game for Giroud.
The ex-Arsenal and Chelsea player suffered a cut in the first half that appeared as though it might end his game, but he stayed on and struck the decisive blow before limping off after falling awkwardly.
In more positive injury news for Milan boss Stefano Pioli, Zlatan Ibrahimovic made his return as a late substitute to help see out the win.
It means a two-point lead at the top, although remaining champions Inter – who were 5-0 over Salernitana on Friday – have a game in hand.
Juventus remain an outside bet for the title after extending their unbeaten league run to 14 games with a 1-0 win over Spezia.
Alvaro Morata scored the only goal for Massimiliano Allegri’s side, who were not at their best but dug deep for a vital win.
Juve move on to 53 points in the fourth and final Champions League spot, where they sit six points above fifth-placed Atalanta, who have a game in hand.
- 22Di Lorenzo
- 13RrahmaniBooked at 37mins
- 26KoulibalyBooked at 24mins
- 6Mário Rui
- 8RuizSubstituted forMertensat 76′minutes
- 68LobotkaSubstituted forLozanoat 82′minutes
- 21PolitanoSubstituted forOunasat 67′minutesBooked at 90mins
- 20ZielinskiSubstituted forZambo Anguissaat 82′minutes
- 24InsigneSubstituted forElmasat 67′minutes
- 9OsimhenBooked at 77mins
- 5Nunes Jesus
- 99Zambo Anguissa
- 16MaignanBooked at 83mins
- 2CalabriaSubstituted forFlorenziat 80′minutesBooked at 90mins
- 19HernándezBooked at 77mins
- 8TonaliSubstituted forKrunicat 67′minutes
- 30MessiasSubstituted forSaelemaekersat 79′minutes
- 9GiroudBooked at 39minsSubstituted forRebicat 68′minutes
- 17da Conceição LeãoSubstituted forIbrahimovicat 90′minutes
- 7Castillejo Azuaga
Match ends, Napoli 0, AC Milan 1.
Second Half ends, Napoli 0, AC Milan 1.
Corner, AC Milan. Conceded by Dries Mertens.
Corner, AC Milan. Conceded by David Ospina.
Attempt saved. Alexis Saelemaekers (AC Milan) right footed shot from the centre of the box is saved in the top centre of the goal. Assisted by Theo Hernández.
Alessandro Florenzi (AC Milan) is shown the yellow card for a bad foul.
Hirving Lozano (Napoli) wins a free kick in the defensive half.
Foul by Alessandro Florenzi (AC Milan).
Adam Ounas (Napoli) is shown the yellow card for a bad foul.
Foul by Adam Ounas (Napoli).
Ante Rebic (AC Milan) wins a free kick in the defensive half.
Substitution, AC Milan. Zlatan Ibrahimovic replaces Rafael Leão.
Mário Rui (Napoli) wins a free kick in the defensive half.
Foul by Alexis Saelemaekers (AC Milan).
Attempt missed. Hirving Lozano (Napoli) right footed shot from outside the box is high and wide to the right. Assisted by Eljif Elmas.
Attempt saved. Theo Hernández (AC Milan) left footed shot from the left side of the box is saved in the top left corner. Assisted by Ante Rebic.
Attempt saved. Victor Osimhen (Napoli) right footed shot from a difficult angle on the right is saved in the bottom right corner. Assisted by Adam Ounas.
Mike Maignan (AC Milan) is shown the yellow card.
Attempt missed. Hirving Lozano (Napoli) right footed shot from outside the box is close, but misses to the left following a corner.
Corner, Napoli. Conceded by Franck Kessié.