AC Milan closed the gap on Serie A leaders Inter Milan to a point after a home win over Jose Mourinho’s Roma.
The hosts took an eighth-minute lead when Olivier Giroud converted a penalty following a handball by former Chelsea team-mate Tammy Abraham.
Milan made it 2-0 with Junior Messias’ follow-up after Giroud hit the post.
England striker Abraham pulled one back, steering in Lorenzo Pellegrini’s shot, but substitute Rafael Leao broke clear to score Milan’s third goal.
Zlatan Ibrahimovic had a chance to add a fourth in injury time, but saw his penalty, awarded after Leao had been brought down by Gianluca Mancini, saved by ex-Wolves goalkeeper Rui Patricio.
Mancini was shown his second yellow card for the challenge as Roma ended the game with nine men – right wing-back Rick Karsdorp had been sent off for two bookable offences in the 74th minute.
Abraham, who has now scored 13 goals for Roma in all competitions since his £34m move from Chelsea in August, had a chance to make it 2-2 in the second half but his shot from 22 yards was superbly pushed wide by home goalkeeper Mike Maignan.
The victory leaves Milan second on 45 points from 20 matches, after Inter’s game at Bologna was cancelled amid farcical scenes earlier on Thursday.
Bologna were banned from playing by their local health authority, but with Serie A refusing to cancel matches, Inter were forced to turn up and train before the game, as normal.
Roma, seventh in Serie A, are 14 points behind Inter and this was their first loss in five matches in all competitions.
Both Brahim Diaz and Alessandro Florenzi also hit the crossbar for Milan, who are hoping to win the Italian title for the first time since 2010-11.
- 25FlorenziSubstituted forContiat 78′minutes
- 19HernándezBooked at 44mins
- 33KrunicBooked at 56minsSubstituted forBakayokoat 64′minutes
- 10DíazSubstituted forMaldiniat 88′minutes
- 56SaelemaekersSubstituted forda Conceição Leãoat 64′minutes
- 9GiroudSubstituted forIbrahimovicat 77′minutes
- 17da Conceição Leão
- 1Rui Patrício
- 23ManciniBooked at 90mins
- 3Ibañez da Silva
- 17VeretoutSubstituted forAfena-Gyanat 71′minutes
- 2KarsdorpBooked at 74mins
- 7PellegriniSubstituted forEl Shaarawyat 71′minutes
- 5ViñaSubstituted forCristanteat 71′minutes
- 22ZanioloBooked at 18minsSubstituted forPérezat 85′minutes
- 9AbrahamBooked at 7minsSubstituted forShomurodovat 76′minutes
- 92El Shaarawy
Match ends, AC Milan 3, Roma 1.
Second Half ends, AC Milan 3, Roma 1.
Penalty saved! Zlatan Ibrahimovic (AC Milan) fails to capitalise on this great opportunity, right footed shot saved in the bottom left corner.
Second yellow card to Gianluca Mancini (Roma) for a bad foul.
Penalty AC Milan. Rafael Leão draws a foul in the penalty area.
Penalty conceded by Gianluca Mancini (Roma) after a foul in the penalty area.
Foul by Tiemoué Bakayoko (AC Milan).
Ibañez (Roma) wins a free kick in the attacking half.
Foul by Sandro Tonali (AC Milan).
Henrikh Mkhitaryan (Roma) wins a free kick in the attacking half.
Offside, AC Milan. Rafael Leão tries a through ball, but Zlatan Ibrahimovic is caught offside.
Substitution, AC Milan. Daniel Maldini replaces Brahim Díaz.
Rafael Leão (AC Milan) wins a free kick on the right wing.
Foul by Gianluca Mancini (Roma).
Substitution, Roma. Carles Pérez replaces Nicolò Zaniolo.
Gianluca Mancini (Roma) is shown the yellow card.
(AC Milan) wins a free kick in the defensive half.
Attempt blocked. Bryan Cristante (Roma) left footed shot from the centre of the box is blocked.
Corner, Roma. Conceded by Theo Hernández.