Guinean midfielder Diawara turned in Rick Karsdorp's cross in the 88th minute but was flagged for offside, only for a VAR review to overturn the decision and award the goal.
Spinazzola had scored a superb opener on the volley earlier in the second half to put the visitors in front, only to smash an attempted clearance into his own net after 60 minutes.
The result leaves Roma in fifth place with 47 points, while Fiorentina, who have lost four of their last five games, are 14th with 25 points.
Yet Atalanta ran away with it in the second half as Jose Luis Palomino, Luis Muriel, Josip Ilicic and Aleksei Miranchuk scored to give Gian Piero Gasperini's side a fourth consecutive league win and send them level with third-placed Juventus on 49 points.
Coach Leonardo Semplici oversaw a win over Crotone on his debut last week after replacing the sacked Eusebio Di Francesco, and his side picked up another positive result to move one point above Torino into 17th place, although the Turin club have two games in hand.
Genoa and Sampdoria shared the spoils in the "Derby della Lanterna" as Davide Zappacosta scored a superb opener for the hosts, only for a Lorenzo Tonelli header to earn Samp a draw in a battle between two midtable sides.
Goals from Davide Faraoni and Kevin Lasagna either side of Daam Foulon's own goal earned eighth-placed Hellas Verona a 3-0 win at Benevento, stretching the Calabrian club's winless league run to nine games and leaving them five points above the relegation zone in 16th.