Roma boosted their Champions League hopes with a 2-0 win over Serie A champions-elect Juventus.
At the end of a week that saw Juve boss Massimiliano Allegri forced to deny rumours he was leaving, his side let in late goals to suffer only their third league defeat of the season.
Captain Alessandro Florenzi fired Roma ahead 11 minutes from time after Cristiano Ronaldo’s strike was ruled out by VAR for offside.
Edin Dzeko then made sure two minutes into stoppage time, scoring his 87th Roma goal to move level with Abel Balbo for seventh on the club’s all-time scoring charts.
The win sees Roma move level with fifth-placed AC Milan with 62 points, one behind fourth-placed Inter and three behind third-placed Atalanta.
Juventus had started the game brightly as Ronaldo fired wide, Juan Cuadrado had a shot saved by Antonio Mirante and Leonardo Spinazzola saw a shot blocked, all inside the first seven minutes of the match.
Mirante then made a good save to keep out Paulo Dybala’s 16th-minute shot as it headed towards the top left corner of the net.
Little had been seen of Roma as an attacking force in that time but when their first chance did come Lorenzo Pellegrini was unlucky not to open the scoring as his shot cannoned back off the crossbar.
Pellegrini then fired wide again as Roma began to find some rhythm, but Mirante had to be on his toes to deny Dybala shortly after.
Where Juve had been the dominant force to begin the first half, Roma were well on top at the start of the second.
Stephan El Shaarawy went close with an effort in the 54th minute before Justin Kluivert headed just wide of the target.
Juventus thought they had the lead just after the hour when Dybala played in Ronaldo to finish, but after VAR took a look the goal was ruled out for offside.
It proved a pivotal moment as Roma took the lead 11 minutes from time with Dzeko teeing up Florenzi to hit a low shot into the bottom corner.
There was no real response from Juve as Roma continued to push forward after the goal.
Dzeko dragged a shot across the face of goal before Florenzi’s free-kick drifted wide.
After Florenzi missed the target again, Dzeko stepped up to make sure of the points in the second minute of stoppage time.
As Juve tried to come forward, Roma hit them on the counter with substitute Cengiz Under playing in Dzeko to finish.
Roma will now head to Sassuolo next week and then host Parma on the final day as they look to break into the top four in the final weeks of the season.