Ashley Young helped Inter Milan secure a second-placed finish in Serie A with a 2-0 win away to Atalanta.
Danilo D'Ambrosio scored the opener after 50 seconds when he headed home Young's cross and it was 2-0 just 19 minutes later.
Ex-Manchester United player Young brought the ball forward, cut inside and curled into the bottom right corner as Inter finished the campaign on 82 points.
With top goalscorer Cristiano Ronaldo rested ahead of the Champions League's resumption next week, the Scudetto winners were undone despite taking a fifth-minute lead through Gonzalo Higuain.
Nikola Kalinic levelled with 23 minutes played before Diego Perotti's spot-kick on the stroke of half-time put Roma ahead.
Perotti added another seven minutes into the second period and Juventus, without Paulo Dybala as well, could not find a way back.
Ciro Immobile netted his 36th league goal of the campaign to be crowned 2020 European Golden Shoe winner, but it was scant consolation in the end for the visitors.
Ragnar Klavan's own-goal put the hosts ahead before they missed the chance to double their advantage when Ibrahimovic was denied from the spot a minute before the break.
It was quickly forgotten in the 55th minute though, when the Swede smashed home and Samu Castillejo wrapped up the scoring two minutes later.
Earlier in the day, relegated Brescia finished with a 1-1 draw at home to Claudio Ranieri's Sampdoria after Ernesto Torregrossa cancelled out Mehdi Leris' opener while the visitors had Kristoffer Askildsen sent off in stoppage-time for a second bookable offence.