A penalty from Franck Kessie and a goal from Ante Rebic on either side of a sensational strike from Jordan Veretout got the job done for the Rossoneri, who are now only four points behind leaders Inter Milan.
However, it wasn't all sunshine and rainbows for the visitors, who lost their talismanic striker Zlatan Ibrahimovic to another potential injury, as the 39-year old went off shortly after the break.
The Giallorossi managed eight shots on target, just one less than AC Milan, but lacked the cutting edge to pounce on their chances. Roma paid the price for their profligacy, with another three points dropped.
They have now slipped below Atalanta in fifth place, two points off Champions League places, as Paulo Fonseca's side are staring at a tough home stretch of the campaign.
On that note, let's have a look at the five hits and flops from either team in the game in Rome:
Hit: Ante Rebic (AC Milan)
In a season ravaged by injuries and COVID-19-enforced absences, Ante Rebic has well and truly struggled to replicate his goalscoring form from last season, as he netted only four times before the AS Roma game.
However, the Croat was eager to add to his tally, something he made clear with his commitment and excellent offensive plays during the game.
He kept knocking on AS Roma's doors with a few feeble attempts during a whirlwind start as AC Milan threw the kitchen sink at their hosts.
In the 58th minute, Rebic's persistence paid off, as the winger, stationed on the edge of the box, received Pau Lopez's poor ball and lashed an unstoppable finish in at the far post.
Flop: Zlatan Ibrahimovic (AC Milan)
The veteran Swede Zlatan Ibrahimovich had a frustrating evening at the Stadio Olimpico. He missed a couple of chances during the frantic early exchanges and then went off in the 56th minute with a possible knock.
Without a goal in his last four games in all competitions before the AS Roma game, Ibrahimovic wanted to get something from this match but lacked the composure to finish off his chances.
He blazed a good chance from inside the box over the crossbar just three minutes into the game. The AC Milan striker then wasted another clear opportunity with a poor backheel attempt that bounced narrowly wide off the post.
Following his misses, the 39-year old was ruled offside after capitalising on another defensive mix-up from AS Roma, but Ibrahimovic fluffed his lines yet again.
However, the worst was yet to come. The striker appeared to sustain a thigh injury, prompting Stefano Pioli to sub him off with over half an hour still to play.
It was an atrocious night for Ibrahimovic, but AC Milan will hope his injury is not too serious.