Juventus stayed 14 points clear of Lazio with five games to play and, with the better head-to-head record, need a draw at Sampdoria on Saturday to clinch a fourth successive Serie A title.
“At this stage it would take a miracle in reverse for us not to win the title,” said Juventus coach Massimiliano Allegri.
“I hope we can get the point we need in Genoa (against Sampdoria), even though we have lost our last two away games at Parma and Torino, so we can concentrate on the Champions League and Coppa Italia matches.”
Gonzalo Rodriguez put Fiorentina ahead with a penalty, Fernando Llorente headed Juve level before Tevez scored twice, taking his league tally to 20, to complete the win. Rodriguez missed a second penalty in between and Josip Ilicic replied with a late goal.
Marco Parolo, Miroslav Klose and Antonio Candreva scored in a six-minute spell early in the game to set up a comfortable win for Lazio over Parma. Keita Balde added the fourth late in the game.
AC Milan, confined to a training camp by coach Filippo Inzaghi following their 2-1 defeat at Udinese on Saturday, suffered more misery by losing 3-1 at home to Genoa. Angry supporters greeted the team with a huge banner reading “enough” before kickoff.
Ivory Coast striker Seydou Doumbia scored his first goal for third-placed AS Roma since his move from CSKA Moscow in January to set up a 3-0 win at Sassuolo which boosted their chances of at least reaching the Champions League playoff round.
Alessandro Florenzi and Miralem Pjanic completed the win for Rudi Garcia’s side.
Juventus have 76 points from 33 games, followed by Lazio (62), Roma (61) and Napoli (56), who visit Empoli on Thursday (1845 GMT).
Juventus could have clinched the title on Wednesday with a win combined with a draw or loss for Lazio, but those hopes quickly disappeared as Lazio raced to a 3-0 lead.
Fiorentina went ahead in the 33rd minute when Juventus playmaker Andrea Pirlo clumsily and unnecessarily tripped Joaquin and Rodriguez fired home the penalty, the first his side have converted in Serie A this season after four successive misses.
Pirlo made amends three minutes later by floating over a free kick for Fernando Llorente to equalise and Tevez put Juventus in front with a looping header over Norberto Neto from Patrice Evra’s long pass forward right on halftime.
Fiorentina were awarded another penalty in the 67th minute but this time, Rodriguez fired wide of the target.
Juve wrapped up the game three minutes later when Claudio Marchisio sent Tevez clear, the Argentine outran the Fiorentina defence and placed a pinpoint effort wide of Neto.
Ilicic replied for Fiorentina with a late free kick.
Milan’s defeat came as former Italian Prime Minister Silvio Berlusconi was meeting Thai businessman Bee Taechaubol to discuss the sale of a stake in the club, which he has owned for almost 30 years.
Andrea Bertolacci and M’Baye Niang scored either side of halftime to put Genoa in control and, although Philippe Mexes pulled one back for Milan, Iago Falque sealed Genoa’s win with a stoppage time penalty.
Milan are tenth with 43 points and set to miss out on European football for the second season running.
Parma’s relegation completed a miserable season which has seen them deducted seven points for breaching financial regulations.
The club, former winners of the Cup Winners’ Cup and UEFA Cup, has changed hands twice, the players have not been paid all season and at one point had to do their own laundry.
(Writing by Brian Homewood in Berne; editing by Justin Palmer)