Seko Fofana scored the winner as Juventus fell to a shock 2-1 defeat at struggling Udinese on Thursday to miss the chance to seal the Serie A title for the ninth time in a row.
Dutch defender Matthijs de Ligt had put the defending champions ahead three minutes before the break in Udine.
But a diving Ilija Nestorovski header seven minutes after the interval got Udinese level, with Fofana completing a comeback for the north-eastern side in injury time.
Juventus remain six points ahead of second-placed Atalanta with three games left to play, and have another chance to seal the title for the 36th time on the pitch at home against 14th-placed Sampdoria on Sunday.
Maurizio Sarri’s side need just three more points and the coronation could even come on Saturday, depending on the results of their rivals Atalanta and Inter Milan, who play AC Milan and Genoa respectively.
“We paid for a lack of order after a good first half because we wanted to win at all costs,” said Sarri.
“In this way we took the game to a dangerous level, and after the 90th minute, we lost it.”
The coach added: “In this period we are physically and mentally tired.”
Juventus’s performance against the minnows from Udine, close to the border with Slovenia, was worrying ahead of their crunch Champions League last 16 game against Lyon on August 7.
“At the moment I am not thinking about the Champions League, in my mind there is only Sampdoria,” added Sarri.
The game started with a clumsy header from Danilo, which almost resulted in an own goal before bouncing off Wojciech Szczesny’s post.
Udinese keeper Juan Musso denied Paulo Dybala — who was wearing the Juventus captain’s armband — after 13 minutes with Cristiano Ronaldo’s long-range effort wide before De Ligt broke through, smashing in after 42 minutes.
Back after the break, Nestorovski took advantage of an Alex Sandro error to equalise, getting his head to a cross from on-loan Watford midfielder Ken Sema to beat Szczesny.
And two minutes into stoppage time, Ivorian international Fofana capped a solid match by getting the better of De Ligt to all but ensure Udinese of staying in Serie A with his third goal this season.
It was a precious three points for Udinese who move up to 15th position, seven points clear of the relegation zone.
“Juventus wanted to win the championship, but we had a great game,” said Fofana.
“We said beforehand that (relegation rivals) Lecce were going strong and we had to push forward.”
Lazio came from a goal down to defeat Cagliari 2-1 to move to within a point of third-placed Inter Milan.
Sergey Milinkovic-Savic got Lazio back into the game just after the break with Ciro Immobile connecting with a Luis Alberto cross for the winner after an hour in Sardinia.
It was Immobile’s 31st goal this season and moves the Italian back ahead of Ronaldo in the battle for the top Serie A scorer this season.
Simone Inzaghi’s side ended their five-match winless run with a victory which leaves them with a slim chance of winning the title, as they sit eight points behind Juventus.
The Roman club are, however, assured of playing in the Champions League next season.