Milan headed into the game on the back of five straight wins, a run which has seen them move into seventh and within striking distance of a place in Europe's second-tier club competition.
But the visitors' winning streak was brought to an end by an impressive performance from Roma, which moves them within five points of leaders Juventus, who visit Sassuolo on Monday.
A draw or a defeat for Roma at the Stadio Olimpico would have handed Juve the chance to seal a third straight Scudetto, but goals from Miralem Pjanic and Gervinho kept the capital club's hopes intact for at least another week.
Pjanic opened the scoring in the 43rd minute for Rudi Garcia's side, highlighting a virtuoso midfield display with a breath-taking individual goal.
The visitors rarely threatened to equalise and Gervinho pounced on Christian Abbiati's error 20 minutes into the second half to wrap up the points and take their title fight a week further.
Unchanged from their 1-0 win at Fiorentina last week, the hosts had the better of a scrappy first half, full-back Dodo going close after 20 minutes when he volleyed over the bar from just inside the area.
Garcia's men continued to enjoy greater possession in the opening period and may have taken the lead if not for the defensive work of Adil Rami, who blocked a seemingly goal-bound effort from Pjanic after the Bosnian had skipped into the box.
However, the former Lyon man did find the net in spectacular fashion just before the half-time interval.
Having played a one-two with Francesco Totti midway inside the Milan half, Pjanic elegantly surged beyond Sulley Muntari, Riccardo Montolivo and Rami before coolly slotting past Abbiati.
Milan started the second half brightly and spurned a half-chance as Montolivo fired wide from Kaka's pull back.
Pjanic remained a danger, though, and was denied a second as Abbiati produced a strong save after the 24-year-old had collected Totti's square pass from a free-kick.
But the Milan goalkeeper was at fault as Roma doubled their lead, failing to handle a well-struck Totti effort and presenting Gervinho with the simple task of netting from two yards.
Clarence Seedorf's men offered little in the way of a replay as Roma eased to a comfortable win that plunges Milan's hopes of salvaging something from a disappointing season into doubt.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.