A equipa da casa adiantou-se no marcador aos 18 minutos, pelo central Luc Ranieri, de cabeça, na sequência de um pontapé de canto, e a Roma empatou já na segunda parte, pelo médio argelino Houssem Aouar, aos 58.
A Fiorentina voltaria para a dianteira no marcador com um golo de Rolando Mandragora, aos 69, e poderia mesmo ter dado o 'xeque-mate' na Roma, quando beneficiou de um penálti, mas Cristiano Biraghi permitiu a defesa do ex-guarda-redes do Benfica Mile Svilar.
A formação romana teve motivos para continuar a acreditar em chegar ao empate, o que se veio a consumar, aos 90+5 minutos, pelo central espanhol Diego Llorente.
O guarda-redes português Rui Patrício, que perdeu o lugar para Svilar desde a saída do treinador luso José Mourinho, não chegou a sair do 'banco'.
Com este resultado, a Roma manteve o quinto lugar, com 48 pontos, mais um do que a Atalanta, adversária do Sporting na Liga Europa, enquanto a Fiorentina segue em oitavo, com 43.
O Inter Milão lidera com 16 pontos de vantagem sobre o AC Milan, com 59, que subiu ao segundo lugar após o empate cedido pela Juventus frente à Atalanta, com a 'vecchia signora' em terceiro, com 58, e o Bolonha em quarto, com 51.
Leia Também: Pedro Caixinha perde, António Oliveira empata no Paulistão