Juventus fell to a shock 1-2 loss to Udinese in the Serie A, as they gave up the chance to lift their ninth straight Scudetto with four games to spare. All they needed was a win to mathematically seal the league title.
However, the Bianconeri fell to their fifth league defeat of the season and were made to wait for their coronation.
Inter Milan's goalless draw with Fiorentina on Wednesday had left the door open for Juve to clinch the Scudetto with a win at the Dacia Arena.
Udinese fought bravely and showed their true mettle in the second half as they scored an injury-time winner. Despite having lower possession of the ball and fewer shots on target, I Friulani were the better side on the night.
It was Matthijs De Ligt of all people who broke the deadlock in the 42nd minute, beating Juan Musso from 25 yards with the sweetest of the strikes. He latched onto a poor clearance and took a couple of touches, before unleashing a strike that went into the bottom right corner of the net.
Before his goal, both clubs nearly conceded own goals in the first 13 minutes of the game, as Danilo's attempted clearance hit the post and Musso somehow managed to nudge Bram Nuytinck's back-pass behind for a corner.
The visitors did not play to their best abilities and it looked as if the fatigue was finally catching up to them. Cristiano Ronaldo was a big disappointment and failed to add to his goalscoring tally.
On that note, here are the Juventus player ratings as Maurizio Sarri's side suffered an unexpected defeat.
Juventus Player ratings:
Wojciech Szczesny: 5.5/10
The 30-year-old could do nothing to stop Ilija Nestorovski's superb header, but apart from that put in a decent shift between the posts. He was called into action in the second half by the Udinese attackers, who were relentless in sending the ball into the box after getting the equaliser.
Szczesny should have been more alert when Fofana ran across his defenders to score the second goal. Made couple of routine saves and few high claims in the game, which is the very least which is expected from a goalkeeper of his calibre.
Alex Sandro: 4.5/10
The Brazilian left-back had an uncharacteristically quiet night at the Stadio Friuli and to add to his misery, he came up short in his defensive duties as well. Sandro was at fault for both the goals and endured a torrid outing.
The left-back failed to cover his ground from an offensive position, which left Nestorovski to make a run into the box unmarked and score the equaliser. For the second goal, his challenge on Fofana proved ineffective, as the Ivorian midfielder outmuscled him to score the winner in the 92nd minute of the game.
Matthijs De Ligt: 7.0/10
The Dutch defender scored a wonderful goal to give his side the lead just before half-time. He was not particularly busy in the first-half, which explains his presence in such an advanced position.
He made the most of the opportunity that came to him from a poor clearance.
De Ligt lost the one-on-one battle against Fofana and that was his only defensive shortcoming throughout the game. He also launched a few balls forward but they did not yield any positive results. He had an impressive 97% passing accuracy in the game.
Daniele Rugani: 5/10
Rugani was called into the main team to fill in for the suspended Leonardo Bonucci and failed to make a case for himself. The Italian was not tested in the first half but was kept busy by the Udinese attackers after the interval. Apart from routine clearances and a few aerial duels, he did not play a key role in the game.
Danilo:5/10
Showed his versatility as he shifted to a right-back role in place of Juan Cuadrado. Danilo had a bright start to the game as he made runs into the opposition half but that spark died down pretty soon.
Struggled defensively as Sema got the better of him consistently. He did nothing to stop the crosses from flying in even after the first goal was conceded.
Aaron Ramsey: 4.5/10
Ramsey was virtually non-existent in the midfield, with his partners doing most of the heavy lifting in breaking up opposition play. Was expected to provide some flair going forward, but failed horribly in that aspect as he ended up getting dispossessed easily in advanced positions.
Earned a yellow card very early in the game and that set the tone for the rest of his evening. The Welshman was rightly substituted in the second half.
Adrien Rabiot: 5.5/10
Rabiot has become a regular starter for Sarri since the Serie A restart and justified the manager's trust in him by putting in a decent shift in the middle of the park. He built on his recent form and made intelligent runs into the opposition half, linking well with Dybala.
At times he was forced to stay back and provide cover for Danilo. Worked hard in the midfield against the stronger Udinese midfielders and managed to make six successful tackles.
Rodrigo Bentancur: 5.5/10
He found himself between two attack-minded midfielders and was forced to do most of the dirty work in the middle of the pitch. He played more like a defensive midfielder tonight and was not afraid of putting his body on the line.
Needs to work a little bit more on his distribution as he failed to link up well with the attackers in the game.
Federico Bernardeschi: 4.5/10
Just like Ramsey in the midfield, Bernardeschi was virtually non-existent in the attack. He was moving aimlessly in the opposition half and showed no creativity with the ball at his feet.
The Italian's passes were wayward and he completed the game with a 79% pass accuracy. He only had 30 touches before he was substituted in the second half.
Paulo Dybala: 6/10
Dybala was Juve's best attacker on the pitch tonight and had a couple of good opportunities in the first half, including a volley that well saved by Musso. His movement in the first 45 minutes was impressive as he covered a lot of ground to try and find spaces in the Udinese defence.
Despite all his efforts in the second half, he was not as influential in the final third and failed to create goalscoring opportunities.
Cristiano Ronaldo: 5/10
Ronaldo's red-hot form heading into the fixture indicated the 35-year-old was almost guaranteed a goal in the game. However, he failed to find the back of the net in what was one of his worst performances of the season.
He was starved of service in the box largely due to Udinese's backline but also because his midfielders failed to provide him with service.
In desperation, he tried his luck from long range on a couple of occasions, but they were way off the mark.
Substitutes
Douglas Costa: 4.5/10
Was brought into the game way too late and could have had a bigger impact if he was brought on earlier. He did not get a chance to settle properly into the game, as Juventus were on the back foot when he came onto the pitch.
Blaise Matuidi: 4.5/10
Replaced Ramsey and added some stability to the midfield, taking the pressure off from Rabiot and Bentancur. Had little to offer going forward as Juve resorted to long-range shots in the closing stages of the game.
Juan Cuadrado: N/A
Did not play long enough to warrant a rating, as he got onto the pitch with just seven minutes left on the clock.
Also Read: Twitter explodes as Cristiano Ronaldo blanks in Juventus' shock defeat against Udinese