Juventus missed the chance to seal their sixth consecutive Serie A title as they lost to second-placed Roma.
They remain four points clear of the capital side with two games remaining and will wrap up the title if they beat Crotone at home next Sunday.
Before then, they face Lazio in Wednesday’s Coppa Italia final.
Juve were ahead at Roma through Mario Lemina, but Daniele de Rossi, Stephan El Shaarawy and Radja Nainggolan kept Roma’s slim hopes alive.
Massimiliano Allegri’s side only needed a point to secure a record sixth league title in a row and looked in good shape to do it when Lemina tapped home Gonzalo Higuain’s cross.
But De Rossi levelled from the rebound when Gianluigi Buffon parried Kostas Manolas’ effort and El Shaarawy’s deflected shot put Roma ahead. Nainggolan smashed in a third on the bounce and Juve rarely looked like coming back from that.
Juventus are still likely to win the title and will have the chance to win it in front of their own fans against struggling Crotone on Sunday.
They could actually be champions on Saturday if Roma lose at Chievo, and third-placed Napoli do not beat Fiorentina at home.
By that stage, Juventus will know whether they can still win the treble with the Champions League final against Real Madrid to come on 3 June.