Match ends, Fiorentina 1, Juventus 2.
Juventus are one game away from a fifth consecutive Serie A title, thanks to a dramatic victory over Fiorentina.
If second-placed Napoli fail to win away to Roma on Monday (14:00 BST), Juventus will be champions again.
Mario Mandzukic converted Paul Pogba's knockdown for the opener but Nikola Kalinic levelled from 20 yards late on.
Alvaro Morata scored the winner moments later before Kalinic had a penalty saved by Gianluigi Buffon and then struck the bar in a thrilling finish.
Juventus have won 24 of their last 25 league games, drawing the other, since late October to climb from 12th place - and 11 points off the top - to the brink of the Scudetto.
Fifth-placed Fiorentina played well and were unlucky to lose, with Federico Bernardeschi having a goal harshly ruled out for offside in the first half.
They were, however, fortunate to win a penalty in the final minute, when Kalinic went down under minimal contact from ex-Fiorentina winger Juan Cuadrado, who had just come off the bench.
But justice was served when Juve legend Buffon guessed right to save the penalty - and then kept out the rebound from Bernardeschi.
Deep into injury time, ex-Blackburn striker Kalinic had another chance to level but his header from close range hit the crossbar.
Juventus coach Massimiliano Allegri: "Everyone said we were dead and buried. We've bounced back with 24 wins from 25 games.
"We've had a memorable season and now we must round it off in the best possible way.
"Will we watch Roma v Napoli? We'll train and get ready for Carpi [next Sunday], then we'll hear the result."
- 2RodríguezBooked at 57mins
- 5BadeljSubstituted forRoncagliaat 88'minutes
- 20Valero Iglesias
- 27TelloSubstituted forFernándezat 62'minutes
- 72IlicicSubstituted forZárateat 53'minutes
- 9N Kalinic
- 6Facundo Costa
- 24RuganiBooked at 72mins
- 26LichtsteinerSubstituted forJu Cuadradoat 88'minutesBooked at 89mins
- 10PogbaSubstituted forAsamoahat 84'minutes
- 21DybalaSubstituted forMorataat 70'minutesBooked at 83mins
- 11de Carvalho Andrade Lima
- 12Lobo Silva
- 16Ju Cuadrado
- Paolo Tagliavento
- Shots on Target
Second Half ends, Fiorentina 1, Juventus 2.
Foul by Facundo Roncaglia (Fiorentina).
Álvaro Morata (Juventus) wins a free kick on the left wing.
Nikola Kalinic (Fiorentina) hits the bar with a header from the right side of the six yard box. Assisted by Davide Astori following a corner.
Attempt missed. Davide Astori (Fiorentina) header from the left side of the box misses to the right. Assisted by Federico Bernardeschi with a cross following a corner.
Corner, Fiorentina. Conceded by Juan Cuadrado.
Attempt blocked. Mauro Zárate (Fiorentina) right footed shot from outside the box is blocked.
Gonzalo Rodríguez (Fiorentina) wins a free kick in the attacking half.
Foul by Juan Cuadrado (Juventus).
Attempt missed. Nikola Kalinic (Fiorentina) header from the centre of the box is too high. Assisted by Nenad Tomovic with a cross.
Attempt saved. Federico Bernardeschi (Fiorentina) left footed shot from the centre of the box is saved in the bottom right corner.
Penalty saved! Nikola Kalinic (Fiorentina) fails to capitalise on this great opportunity, right footed shot saved in the bottom right corner.
Juan Cuadrado (Juventus) is shown the yellow card for a bad foul.
Penalty Fiorentina. Nikola Kalinic draws a foul in the penalty area.
Penalty conceded by Juan Cuadrado (Juventus) after a foul in the penalty area.
Substitution, Fiorentina. Facundo Roncaglia replaces Milan Badelj.
Substitution, Juventus. Juan Cuadrado replaces Stephan Lichtsteiner.
Foul by Mauro Zárate (Fiorentina).
Kwadwo Asamoah (Juventus) wins a free kick in the defensive half.