Strasbourg spoiled Paris St Germain's title party with a 2-2 draw at the Parc des Princes.
Victory for the reigning champions would have seen them retain their Ligue 1 crown on Sunday night, after second-placed Lille' 1-1 draw at Reims earlier in the day.
Despite a host of injury problems and the absence from the starting line up of Neymar, Edinson Cavani and Kylian Mbappe, who was named as a substitute, it looked a formality when Eric Maxim Choupo-Moting scored after 13 minutes to put PSG ahead.
However, Strasbourg arrived in the French capital on a high after winning the Coupe de la Ligue final last weekend and following it up with a 4-0 midweek success against Reims, and the visitors rallied.
Thierry Laurey's team turned the game on its head before half-time with goals from Nuno Da Costa and Anthony Goncalves.
The introduction of Mbappe after an hour saw PSG become much more of a threat and Thilo Kehrer equalised with eight minutes remaining, but the hosts could not find a winning goal and their inevitable coronation was put on hold.
The surprise result means PSG still need one more victory to clinch a sixth Ligue 1 title in seven seasons – and the eighth in the club's history.
The hosts started confidently and Presnel Kimpembe and Thiago Silva both went close following corners before Choupo-Moting opened the scoring. Leandro Paredes put Colin Dagba through down the right and the full-back's first-time cross was converted by the former Stoke forward from close range, possibly with a slight touch off covering defender Stefan Mitrovic.
It appeared the title party was up and running, but Strasbourg had not read the script and equalised after 26 minutes. With Dani Alves and Dagba caught out of position, Lionel Carole attacked the space in front of him and set up Da Costa for a tidy finish from 12 yards out.
PSG should have regained the lead immediately but an astonishing miss by Choupo-Moting meant it stayed level. Christopher Nkunku lifted his shot over the advancing goalkeeper and the ball was set to trickle into the net, only for Choupo-Moting to follow it in and stop the ball on the goal line in an attempt to get the final touch and his second goal of the game.
Things got worse for PSG as they fell behind seven minutes before half-time. A corner was not properly cleared and Goncalves sent a shot with the outside of his boot flying beyond the helpless Gianluigi Buffon and into the bottom corner of the net.
Juan Bernat missed the target from a good position early in the second half but with his team not making any significant improvement, Thomas Tuchel turned to Mbappe from the bench after an hour.
The 20-year-old's introduction instantly swung the game in PSG's favour. Seconds after coming on, Mbappe got in behind the Strasbourg defence and fired a low shot at goal.
The champions-elect were much more direct with Mbappe's pace and a mazy run earned PSG a corner, from which Alves was unlucky to see his volley strike the crossbar.
Mbappe forced two saves from Matz Sels, the second of which down at the striker's feet went out for a corner. While Mbappe's run past two Strasbourg defenders did not directly bring a goal, PSG did equalise from the resulting corner.
Substitutes Julian Draxler and Kehrer combined to level things up, with the latter heading home.
PSG would have hoped to have gone on to get the goal they needed to confirm the title but Sels denied Mbappe again late on before Alves clipped the ball over the goalkeeper and, agonisingly for the hosts, the crossbar in injury time.
A final opportunity for Mbappe saw him kick the ball against his standing leg and his shot looped on to the roof of the net.
PSG are 20 points clear at the top of the table with eight games left and their next chance to clinch the title will come when they travel to second-placed Lille next weekend.