Seko Fofana scored the winner for the hosts in second-half injury time to steal all three points from Juventus.
The eight-time holders dominated the first half and finally found their opener just after the 40-minute mark when Matthijs de Ligt settled an Udinese clearance and smashed a shot from outside the penalty area past Juan Musso to take the lead into the break.
Udinese surprisingly hit back early in the second half through Ilija Nestorovski, who scored with a stellar diving header on 52 minutes to get the match back on level terms.
The goal seemed to enliven the hosts and a tense back-and-forth match played out over the rest of the second half before an excellent individual effort from Fofana gave Udinese an important and surprising win.
Diving header brings Udinese level vs. Juve
Serie A: Ilija Nestorovski (52') Udinese 1-1 Juventus. Watch Serie A on ESPN+.
Juventus have now given up multiple goals in four of their last five matches, the only time in the last 10 seasons this has happened.
"We lost a bit of order," Juventus boss Maurizio Sarri after the match. "We lost in the 93rd minute because we were trying to win at any cost."
Juve are now on 80 points from 35 games and can seal the title with a win over Sampdoria on Sunday or if chasing Inter Milan and Atalanta fail to win on Saturday. Udinese, on 39 points, are almost certain to avoid relegation from Serie A.
And while the Bianconeri are still on course for the title, it's mainly because two of the other contenders, Inter Milan and Lazio, have also suffered a loss of form.
Inter have won two of their last six games and Lazio had taken only one point from their last 15 before Thursday.
"This season is difficult, all the teams are playing in conditions different to the usual ones and everyone is tired," said Sarri.
"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."
Juventus are also still alive in the Champions League and have work to do to reach the quarterfinals as they trail Lyon 1-0 on aggregate ahead of the Aug. 7 second leg in Turin.