Roma won 1-0 away to leaders AC Milan on Saturday in a classic Serie A tie played at freezing temperatures at the Giuseppe Meazza.
Marco Borriello found a lucky deflection in the second half to score Roma's winner against his ex-club.
The Devils displayed the usual grit only early in the game and lost star play maker Andrea Pirlo to a muscular injury after 22 minutes.
Dutch veteran Clarence Seedorf replaced him and tried a feeble shot before his Brazil teammate Robinho grossly misfired a poor clearance.
Jeremy Menez had a first chance for Roma on the half hour, firing however into the stands after snatching a ball at the limit of the box.
Zlatan Ibrahimovic's scoring opportunity was even more inviting five minutes later when the tall Swede stormed into the area only to be blocked by Roma's Brazilian goalkeeper Alexander Doni.
Borriello's goal on 68 minutes was triggered by a fast break on the right flank by Frenchman Menez, whose low cross was cleared by Ignazio Abate, but bounced against the leg of Borriello and past Christian Abbiati.
Ibra aimed a high lob three minutes later, while Roma threatened again with a long-range volley from Daniele De Rossi
Milan were certain to stay at the top ahead of a winter break ending Jan 6.
They have 36 points from 17 games and hold a six-point lead on Juventus, Napoli and Lazio, looking to reduce their gap when they play respectively against Chievo, Lecce and Udinese Sunday.
Roma closed in to seven points from the top.
Struggling newcomers Cesena edged Cagliari 1-0 on Saturday to slightly improve their lowly standing in the Italian Serie A.