(CNN) -- Roma beat Lazio 2-0 in a heated capital city derby on Sunday as Marco Borriello and Mirko Vucinic both scored penalties.
Despite the defeat Lazio stay top in Serie A, but their lead has been cut to two points after AC Milan won 3-2 at bottom club Bari.
Reiging champions Inter, who scraped a 1-1 draw against Brescia on Saturday, are in third, a further point back.
The victory for Claudio Ranieri's Roma revives their title hopes, but they trail their bitter local rivals by seven points.
Lazio coach Edy Reja was unhappy with the referee after his side slid to defeat in the Stadio Olimpico.
"My players are saying, that's enough, you can't play against 12," he told AFP.
"The game was decided by certain episodes. In the previous days Roma were complaining that they never got any decisions, well they can't do that now."
Roma won their first spot kick early in the second half as Stephan Lichsteiner handled a goalward bound shot.
Borriello's effort crept under Fernando Muslera's body to give them a deserved lead.
Lazio had chances to get back into the match before Julio Baptista was impeded by Andre Dias and Vucinic scored the second penalty with three minutes to go.
Milan had Massimo Ambrosini, Mathieu Flamini and Pato on target in their win with Vitaly Kutuzov and Paulo Barreto replying for the strugglers.
Juventus stayed fourth after they came back from a goal down to beat 10-man Cesena 3-1.
In the German Bundesliga, Borussia Dortmund went four points clear with a 4-0 thrashing of 10-man Hanover.
Second-placed Mainz lost on Saturday to give Dortmund the chance to open up the big gap at the top.
Japan midfielder Shinji Kagawa put them ahead with Lucas Barrios doubling the lead on 72 minutes.
Robert Lewandowski quickly made it 3-0 before Hanover defender Karim Haggui was shown red for kicking Dortmund's Jakub Blaszczykowski in the penalty area.
Turkey midfielder Nuri Sahin saw his penalty saved, but Blaszczykowski added a fourth in injury time.