Juventus maintained their 13-point lead at the top of Serie A on Sunday after Paulo Dybala hit the winner in a 1-0 victory at Bologna to keep the champions ahead of Napoli who easily saw off Parma 4-0.
But there was drama in Tuscany as Jordan Veretout converted a 101st-minute penalty to hold third-placed Inter Milan 3-3 in a chaotic game.
Inter, now nine points behind Napoli in third, are just two points ahead of city rivals AC Milan who remain fourth after a 3-0 win over Empoli 3-0 on Friday.
In Turin, Dybala came off the bench to slot home in the 67th minute after defender Danilo deflected Blaise Matuidi's low cross straight to the Argentine international in front of a gaping goal.
Napoli eased past mid-table Parma, Piotr Zielinski opening the scoring in the 19th minute before Arkadiusz Milik rolled a cheeky free-kick under the wall and past Luigi Sepe.
Milik added the third with a fine strike past Sepe in the 73rd minute following sloppy play from Parma, and Adam Ounas completed the rout by finishing off a superb passing move with an angled strike.
The goals were the first in Serie A for Carlo Ancelotti's side in three matches.
Juventus travel to Napoli next week knowing that anything other than a defeat effectively seals their eighth straight league title before they try to overhaul a 2-0 deficit against Atletico Madrid in their Champions League last-16 second leg at the Allianz Stadium.
"We'll be up against an even more defensive Atletico, we'll have to be even more quick and precise with our passes, something that we weren't today," said Juve coach Massimiliano Allegri.
"I'm convinced we can go through."
Bologna stay third-from-bottom on 18 points and three from safety.
'No ifs or buts'
There was frustration for Inter who had fought back after going a goal down through a Stefan de Vrij own goal just seconds into their game in Florence.
Matias Vecino levelled after six minutes with Matteo Politano pulling the visitors ahead four minutes before the break.
Ivan Perisic converted a 52nd minute penalty awarded after consultation with VAR, with Colombian striker Muriel pulling one back for Fiorentina with an incredible free kick from a distance after 74 minutes.
In a dramatic finale, Fiorentina were awarded a penalty for a contested Danilo D'Ambrosio handball, which looked to have bounced off his chest.
Veretout kept his cool to send Samir Handanovic the wrong way, giving Fiorentina a precious point to move up to ninth two points off the Europa League places.
"There are no ifs or buts, it's clear. It's his chest. There is no argument," raged Inter coach Luciano Spalletti.
On Saturday, Edin Dzeko's 95th-minute winner completed Roma's fightback at lowly Frosinone as they won 3-2 to keep pace with fourth-placed AC Milan.
Rejuvenated Dzeko has four goals in his last five league games after his brace at the Stadio Benito Stirpe, following a fallow few months up front for Eusebio Di Francesco's inconsistent side.
Dzeko's winner, which came after he had equalised Camillo Ciano's comical fifth-minute opener for Frosinone, kept Roma one point behind Milan, who occupy the final Champions League place, ahead of next week's Rome derby against Lazio.
Lazio are six points behind Roma after their match with Udinese set for Monday night was postponed as it was considered too close to the first leg of their Italian Cup semi-final against Milan.
Simone Inzaghi's side are level on 38 points with Atalanta and Torino, who beat Atalanta 2-0 on Saturday with goals either side of half-time from Armando Izzo and Iago Falque.