|Daniele de Rossi kisses his shinpad after firing Roma into the lead [AFP]
Diego Milito hit the post in the last minute of injury time as Roma held on to a 2-1 lead over Inter Milan to go within a point of the champions at the top of the Italian Serie A table.
Milito had scored a second-half equaliser to cancel out Daniele de Rossi's opener before Luca Toni span to fire home what turned out to be the winner in the Stadio Olimpico in Rome.
Inter now hold the lead by the slenderest of margins, with AC Milan also able to go level on points with Roma when they play struggling Lazio on Sunday.
The result means that Claudio Ranieri's team have clawed back 13 points on Jose Mourinho's men since the two clubs last met back in November, while Mourinho will count the cost of seven bookings that will see four of his players suspended next week.
As expected for a top of the table clash there was a cagey opening in the capital and it took a mistake from Inter goalkeeper Julio Cesar to break the deadlock in the 17th minute.
Stab for Cesar
Nicolas Burdisso sent a weak header into the Brazilian's hands from David Pizarro's free-kick but Cesar spilled the ball and De Rossi acted quickly to slide in and stab home the rebound.
That sparked an immediate response from the champions and Wesley Sneijder lashed a 30-yard free-kick just wide.
Roma's Norwegian left-back John Arne Riise then thumped a rasping free-kick from 25 yards that swerved inches past the post and Mirko Vucinic forced Cesar to sprawl to his right to palm away another fierce shot from a clever free-kick routine.
Inter almost levelled four minutes before the break as Walter Samuel rose on the edge of the six-yard box to head Sneijder's corner powerfully goalwards only to see the ball crash down off the bar.
And Inter began the second period by hitting the woodwork again as Milito's shot was deflected onto the corner of bar and post.
The leaders were fired up and moments later Sneijder brought a fine save out of Julio Sergio.
Mourinho threw on a third striker in former Lazio forward Goran Pandev and the game opened up further, with Sneijder ramming a shot down Sergio's throat before Riise blasted high and wide.
Inter equalised 24 minutes from time as Sneijder crossed for Milito to prod home from inside the six-yard box, although television replays showed there had been a clear offside in the build-up.
But just as Inter looked to be taking control, a miscued shot from substitute Rodrigo Taddei fell to Toni, who shot home into the bottom-right corner from 15 yards on 72 minutes.
Inter came within inches of maintaining their four-point lead at the top deep into injury time when Milito crashed a shot against the left-hand upright.
Elsewhere Palermo consolidated fourth place, which is worth a slot in next season's European Champions League preliminaries, with a 3-1 home win over Bologna courtesy of a Fabrizio Miccoli hat-trick.
The striker nutmegged keeper Emiliano Viviano on 10 minutes and then restored his side's advantage with a penalty in the 43rd after Adailton had been on target from a free kick for Bologna.
Miccoli then sealed victory for the Sicilians 11 minutes from time.
Palermo have 51 points, four more than fifth-placed Sampdoria who host Cagliari on Sunday.