Fiorentina midfielder Andrea Lazzari struck the winner at the death to dent Roma’s European ambitions this afternoon.
Stevan Jovetic got the Viola off to a dream start with a glancing header from Lazzari’s cross to put the visitors ahead after two minutes.
Roma struggled to break down a resolute Fiorentina defence but captain Francesco Totti managed to equalise 19 minutes from time.
Fiorentina then stunned the home crowd at the Stadio Olimpico with Lazzari making no mistake in front of goal.
Roma ended the game with only 10 men after striker Daniel Osvaldo was sent off for dissent in the closing seconds.
Fiorentina’s third away win this season has lifted the club three places and six points clear of the drop zone with four games left to play.
Roma, meanwhile, have dropped to seventh, five points behind city rivals Lazio who hold the last Champions League qualifying spot.