The hosts knew a win would move them to within one point of the UEFA Champions League qualification places following Juventus’ surprise home stalemate with Verona 24 hours earlier, while La Viola needed only a draw to guarantee survival.
Unsurprisingly, the first clear opportunity fell to Donyell Malen, whose 11 goals since his arrival in January have sent him top of Roma’s goalscoring charts, and the Dutchman was unlucky to see his deflected effort from 18 yards strike the top of the crossbar.
Niccolo Pisilli swung in the resulting corner, and Gianluca Mancini met it with a thumping header to give his side a 13th-minute lead with his second SA goal of the season.
It took just four minutes for Roma to double the advantage, as they counter-attacked at pace and Mario Hermoso set up Wesley to curl his fifth goal of the campaign into the bottom corner.
That meant that Fiorentina had conceded more first-half goals in the opening 17 minutes than in their previous seven league games combined (1).
They then fell further behind 11 minutes before the break when Manu Kone tiptoed around Nicolo Fagioli on the byline and crossed for Hermoso to score for the second home game in succession.
Fiorentina did not register their first shot until the 44th minute, and manager Paolo Vanoli made a triple substitution at the break as he brought off Marin Pongracic, Jack Harrison and Albert Gudmundsson for Pietro Comuzzo, Riccardo Braschi and Fabiano Parisi.
Braschi almost made an instant impact when he struck the post two minutes after half-time, before Malen saw another deflected effort hit the crossbar shortly after.
The Dutchman was celebrating two minutes before the hour mark, though, when his delicious dinked cross was nodded in by Pisilli for his second goal in SA this term.
The only surprise was that there was no goal for Malen on a brilliant night for Roma, who have now won an incredible 19 of 22 SA matches when scoring first this season (D2, L1).
The Giallorossi climb back to fifth with three games of the campaign remaining, while Fiorentina fall to 16th, nine points above the relegation zone, after suffering only their second defeat in their last 12 league outings (W5, D5).