Roma had the better of the first half, but Patrick Cutrone’s back-heel flick and a dinked Davide Calabria finish gave Milan a huge win at the Olimpico.
There are now only six points separating these teams in the table and Roma slip out of the top four.
The Giallorossi were hoping to recover from their midweek Champions League loss to Shakhtar Donetsk and had started strong, with Gianluigi Donnarumma saves on Cengiz Under and Patrik Schick.
However, straight after the restart, Milan broke through with Suso whipping in a cross from the right for Cutrone’s delightful back-heel flick from six yards, anticipating Kostas Manolas.
It was another youth team product, full-back Calabria, who completed the smart give-and-go with Nikola Kalinic to dink his finish over Alisson.
Milan hadn’t beaten Roma at the Olimpico in Serie A since October 2011, but make a genuine march on the top four now, while Roma bump down to fifth.
Click here for the full match report.
Or see how it unfolded on the LIVEBLOG.
See the latest Serie A predictions and betting tips with Eurotips.co.uk