Juve, who have been Italian champions for exactly 3,000 days, need to win one of their final three games to win their ninth title in a row.
They led through Matthijs de Ligt’s powerful drive.
But Ilija Nestorovski headed in an equaliser before Seko Fofana’s brilliant winner in injury time.
As Juve pushed for a winner, Fofana ran from the halfway line, beat Alex Sandro for pace before cutting inside De Ligt and slotting the ball under Wojciech Szczesny.
“We paid for a lack of order after a good first half,” said Sarri, whose future is reportedly in doubt.
“We wanted to win at all costs, we were messy and we took the game on a dangerous track and lost it on 93 minutes because we wanted the three points.
“At this stage of the season, it is difficult, we are all tired. We have lost aggression.
“It’s complicated to stay mentally and physically on the ball for 90 minutes. The games are strange and the momentum changes very easily. The mental fatigue is more than the physical fatigue.”
Cristiano Ronaldo has been overtaken by Lazio striker Ciro Immobile in the golden boot race. Immobile scored his 31st goal of the season in Lazio’s 2-1 win over Cagliari to take him one above Ronaldo’s total.
Juventus only need three points to seal an unprecedented ninth consecutive Serie A title – but they are out of form.
They have only won one of their past five Serie A games, but the three teams below them – Atalanta, Inter Milan and Lazio – have all dropped points recently.
Sarri is hoping to win the first league title of his career.
Juve looked laboured at Udinese – who are not yet safe from relegation – with most of their 21 shots either speculative or from long range.
They play Sampdoria on Sunday (20:45 BST) – although could be champions before then if their rivals lose their weekend matche
Home TeamUdineseAway TeamJuventusPossessionHome39%Away61%ShotsHome11Away21Shots on TargetHome4Away5CornersHome3Away7FoulsHome9Away8Sharethis page
Scores, Results & Fixtures
THURSDAY 23RD JULY 2