It's the first time in Europe's five major leagues - Italy, England, Spain, Germany and France - that a club has won eight straight titles.
And it was a big relief for Juventus following its elimination by Ajax in the Champions League on Tuesday, after failing to clinch last weekend with a surprise loss at Spal.
"It was upsetting and negative on Tuesday," Juventus defender Leonardo Bonucci said. "Today we turned our anger toward the pitch and transformed it into positive energy to achieve this goal."
Juventus needed only a point but quickly fell behind when Nikola Milenkovic took advantage of confusion inside the Bianconeri area to score for Fiorentina six minutes in.
However, Alex Sandro headed in from a corner for the equalizer and Ronaldo's cross from a sharp angle was then redirected in by Fiorentina defender German Pezzella either side of halftime.
Ronaldo, who joined Juventus for this season from Real Madrid, became the first player to win the English Premier League (with Manchester United), the Spanish league (with Madrid) and Serie A.
"It was a very good first season and I adapted well. We won the 'scudetto' and the Italian Super Cup, which is certainly not easy to achieve," Ronaldo said. "You can't win all the time. We felt that we could do more ... but only one side can win the Champions League.
"Next year is a new page, the fans all want it and so do we," Ronaldo said of the Champions League, adding that he's "1,000 percent" certain he will stay with Juventus for next season.
After the final whistle, Juventus players celebrated by forming a circle and jumping up and down clapping their hands. Then they drank champagne and some players invited their children out to take part in the festivities.
Juventus moved 20 points ahead of second-place Napoli, which has six games left.
It was Juventus' 35th title overall. However, the jumbo screens inside Allianz Stadium flashed No. 37 to include the 2005 and 2006 titles that were stripped in the Calciopoli match-fixing scandal.
The only other club in the top five European leagues that had won seven straight was Lyon in France from 2002-08.
The Juventus women's team also clinched the Italian title Saturday, with a 3-0 win at Hellas Verona in the final round of the season. It's the second consecutive title for the women's squad.
The men's team had to come from behind, as Milenkovic's goal was the earliest Juventus has conceded all season.
Juventus goalkeeper Wojciech Szczesny was lying on the ground in apparent pain following contact near the post when the ball bounced toward Milenkovic, who smashed it into the roof of the net.
Szczesny had his hand treated and had to stay attentive as Fiorentina kept on threatening with counterattacks.
Federico Chiesa, a reported transfer target for Juventus, hit the post from the edge of the area in the 34th.
Three minutes later, Sandro put Juventus in front. Since Sandro's Serie A debut in 2015, the left back has been directly involved in 23 goals (10 goals and 13 assists) - more than any other defender in the Italian league.
Still, there were more moments of concern for Juventus as Chiesa hit the crossbar two minutes before the break.
Order was restored in the second half as Ronaldo aimed his cross toward Federico Bernardeschi and Pezzella turned it into his own net as he attempted to intercept the pass.
Szczesny preserved the advantage with a difficult save on Bryan Dabo in the 90th.
"Congratulations to Juve," Fiorentina coach Vincenzo Montella said. "They definitely didn't win the league today. They earned it over the entire season."
CHAMPIONS LEAGUE PLACES
AC Milan's hold on a Champions League spot was in jeopardy following a 1-1 draw at Parma.
Samu Castillejo headed in for Milan midway through the second half before center back Bruno Alves curled in a spectacular free kick to equalize three minutes from time.
Milan remained in fourth place - the last Champions League spot - but was only one point ahead of Roma, which drew 1-1 at third-place Inter Milan.
Lazio may have fallen out of contention for the Champions League with a 2-1 loss at home to already relegated Chievo Verona.
Lazio was left with 10 men when Sergej Milinkovic-Savic was sent off with a straight red in the first half. After being fouled by Mariusz Stepinski, Milinkovic-Savic reacted by kicking the opponent.
Emanuel Vignato and Perparim Hetemaj scored early in the second half for Chievo before Felipe Caicedo pulled one back for Lazio.
Lazio dropped to eighth, four points behind Milan.
At the San Siro, Stephan El Shaarawy opened for Roma before Ivan Perisic's equalizer.
Torino leapfrogged Lazio into seventh with a 1-0 win at Genoa, courtesy of a second-half goal from Cristian Ansaldi.
Andrea Petagna scored a brace as Spal followed up its memorable victory over Juventus last week with a 4-2 win at relegation-threatened Empoli.
Bologna, which is just above the drop zone, beat Sampdoria 3-0 with an own-goal from Lorenzo Tonelli and goals from Erick Pulgar and Riccardo Orsolini.
Also, Joao Pedro's goal gave mid-table Cagliari a 1-0 victory over second-from-last Frosinone, and Udinese and Sassuolo played to a 1-1 draw.
Except for Napoli vs. Atalanta, which is scheduled for Monday, all of Serie A is being played on Saturday due to the Easter holiday.
More AP soccer: https://apnews.com/apf-Soccer and https://twitter.com/AP_Sports
Andrew Dampf on Twitter: www.twitter.com/AndrewDampf
Copyright 2019 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.