Roma's Serie A title hopes suffered a huge blow as Lazio took the Derby della Capitale honours with an impressive 3-1 victory at the Stadio Olimpico.
Keita Balde Diao scored twice and Dusan Basta claimed his first goal in 75 Lazio appearances as the Biancocelesti claimed their first derby league victory since 2012.
Daniele De Rossi had levelled with a controversial penalty at the end of the first half, but Roma were poor throughout and their misery was completed when Antonio Rudiger was sent off for a high tackle on Filip Djordjevic.
Roma kicked off knowing they could cut the gap on league leaders Juventus to six points after the champions were held to a 2-2 draw by Atalanta on Friday night.
But champions Juve could now retain their title as early as next weekend if they beat city rivals Torino and Roma drop points at Milan.
Roma dominated possession in the early exchanges and fashioned chances for Edin Dzeko and Mohamed Salah.
But Thomas Strakosha pushed both efforts aside and Lazio's first forays forward brought instant reward.
Lucas Biglia dragged his shot wide but Lazio were ahead within 60 seconds as Keita raced on to Sergej Milinkovic-Savic's pass to open the scoring after 12 minutes.
Keita pulled away from Federico Fazio and drilled a left-footed shot through the legs of Emerson and past the unsighted Wojciech Szczesny.
Lazio might have had a penalty when Jordan Lukaku fell under Fazio's clumsy challenge and it was the visitors who were controlling proceedings.
Marco Parolo twice tested Szczesny from 20 yards with Keita's pace causing real problems for the Roma defence.
But the Giallorossi levelled in the most controversial circumstances in the closing stages of the first half.
There was clearly no contact between Wallace and Kevin Strootman, but the Dutchman's blatant dive fooled referee Orsato Daniele into awarding a penalty which De Rossi converted for his first Serie A goal of the season.
There was briefly extra belief in Giallorossi ranks and Salah's mazy run set up Dzeko for an opportunity which Strakosha kept out with a wonderful reaction save.
But Lazio were back in front after 50 minutes when Senad Lulic's cross caused panic in the Roma defence and Basta's deflected shot off the unfortunate Fazio just beat the despairing dive of Szczesny.
Lazio's lead could have been extended when Keita was clattered by Fazio just inside the penalty area but this time Orsata was not interested in pointing to the spot and waved play on.
Felipe Anderson twice forced Szczesny into saving with his feet as Lazio still created the better chances, but the issue was put beyond doubt five minutes from time.
Senad Lulic broke free in another rapid counter-attack and Keita had all the time in the world to roll home his 13th goal of the season.
Roma were reduced to 10 men in the final seconds when Rudiger caught Lazio substitute Djordjevic high on the shin and saw a straight red card.