Inter Milan took second place with a 2-0 win over direct rivals Atalanta in Bergamo, finishing the season just one point behind Juventus.
Juventus are looking towards their last 16 home game against Lyon next Friday where Maurizio Sarri’s side need to overturn a 1-0 first-leg deficit.
Cristiano Ronaldo was rested for the final match with nothing left to play for against fifth-place Roma.
Argentine Gonzalo Higuain spearheaded the Juventus attack breaking through after just six minutes in the Allianz Stadium.
But Diego Perotti inspired a Roma fightback setting up Nikola Kalinic to nod in the equaliser after 23 minutes.
A Perotti penalty before the break and a second six minutes into the second half condemned Juventus to their third defeat in four matches.
The team later lifted the trophy as they celebrated winning the ‘Scudetto’ for the 36th time in an empty Allianz Stadium.
“There is still a big gap with Juventus,” said Inter coach Antonio Conte whose side won a three-team battle for second place.
“Juve has a much better structure on and off the pitch. Now the others are trying to work to catch up. We must be smart to understand how to do this, not to go from depression to excessive euphoria.”
Danilo D’Ambrosio nodded in Inter’s first goal after just one minute in Bergamo with Ashley Young doubling their lead after 20 minutes with a stunning curling shot to boost confidence ahead of next week’s Europa League tie against Getafe.
Atalanta’s 17-match unbeaten league run going back to January 20 ended.
But coach Gian Piero Gasperini said it was the best preparation for their Champions League quarter-final against Paris Saint-Germain.
“This game with Inter gave us a nice wake up call, it was the best thing that could have happened to us,” said Gasperini.
“It was the best game we could find in anticipation of the Champions League.
“In the last few weeks we have played more confident football, taken our foot off the gas a little, but tonight we have understood that you cannot play like that against this type of team, and it will be the same with the PSG.”
– Immobile matches record –
Lazio finished fourth, equal on points with Atalanta, having been pushing for the title just one point behind Juventus when the season resumed on June 20.
Simone Inzaghi’s side fell 3-1 to Napoli but forward Ciro Immobile scored his 36th goal of the season to equal the record for the most goals in a Serie A campaign.
The 30-year-old Italy international tapped in after 22 minutes to match Argentina forward Higuain’s record of 36 goals, set while playing for Napoli in the 2015-16 season.
Immobile will also win the European Golden Shoe for the continent’s top scorer this term, having overtaken Bayern Munich striker Robert Lewandowski’s tally of 34 in midweek.
Napoli warmed up for their Champions League last 16 second leg game over Barcelona with a win, but lost captain Lorenzo Insigne, who scored on the night, to injury.
In the San Siro, Zlatan Ibrahimovic missed a penalty but scored his 10th league goal since January as AC Milan finished in sixth place with a 3-0 win over Cagliari.
The season concludes on Sunday with Lecce and Genoa playing Parma and Hellas Verona respectively hoping to avoid joining Brescia and SPAL down in Serie B.
Genoa, in 17th, are just one-point ahead of Lecce, who occupy the final relegation berth.