Paris St. Germain's Ligue 1 title charge suffered a surprise blow as it slumped to defeat away to the 10 men of relegation-battling Reims.
Zlatan Ibrahimovic had a goal controversially disallowed early in the second half, and Reims then had Christopher Glombard sent off for a second bookable offense before the hour mark.
But Reims still ran out victorious as Grzegorz Krychowiak scored the only goal in the 64th minute.
The result means that Lyon can move level on points with PSG by beating Brest away from home on Sunday.
David Beckham again started on the bench for PSG, which squandered a string of chances on its way to a second defeat in three games.
The hosts made a positive start but it was PSG that was the first to find the target in the 15th minute, with Ibrahimovic bringing a save from Kossi Agassa after being picked out by Blaise Matuidi.
At the other end, Antoine Devaux brought a solid save from Salvatore Sirigu with a stinging 25-yard drive pushed away by the Italian's outstretched hand.
Reims' Diego shaved the right post just after the half-hour mark before Ezequiel Lavezzi had the best chance of an opener at the other end, only to fire wide with only Agassa to beat.
Agassi was called into action once again soon after -- this time the keeping out Ibrahimovic's long-range free kick -- before Reims' Gaetan Courtet headed wide from a promising position.
PSG thought it had the lead early in the second half when Ibrahimovic got in behind the Reims defense and finished confidently, but the Swede's 23rd goal of the season was chalked off for a questionable offsides whistle.
Reims' chances of getting anything from the game looked to have taken a huge dent just before the hour when Glombard brought down Javier Pastore and was shown a second yellow card.
But despite the numerical disadvantage it was the hosts who took the lead in the 64th minute.
Mohamed Fofana knocked a Diego corner into the path of Krychowiak and, having escaped the attentions of Alex, the Polish midfielder finished from a tight angle.
PSG threw on Beckham in the 64th minute in an effort to change the game and Lavezzi should have done better with a curling shot moments after the former England captain's entrance, but his effort finished well wide.
The Parisians continued to dominate with the man advantage and Lavezzi was guilty of missing the target once more -- this time the Argentinian snapped at a Sylvain Armand cutback and failed to test Agassa.
In a rare venture forward, Reims' Fortes nearly scored a contender for goal of the season but, after beating Mamadou Sakho and Alex, the Ivorian's shot from the edge of the area was well saved by Sirigu and the 10 men of Reims held out for a famous victory.
Also Saturday, Nice paid the price for the first-half dismissal of Valentin Eysseric as St. Etienne moved into third place with an emphatic 4-0 win.
St Etienne led early on through Pierre-Emerick Aubameyang's penalty but the game turned on the 23rd-minute dismissal of Eysseric, whose ugly challenge on Jeremy Clement spelled the end of the night for both men.
Nice held out with 10 men until the break only for the floodgates to open in the second half, with Yohan Mollo scoring in between Brandao's brace.
Nancy climbed off the bottom of the table after upsetting Sochaux 2-1 to claim only its fourth win of the season.
First-half goals from Benjamin Moukandjo and Florent Zitte put Nancy in charge, and Sochaux halved the deficit through Sloan Privat's acrobatic effort in stoppage time at the end of the game.
Toifilou Maoulida scored the only goal as Bastia beat Ajaccio in a fiery Corsican derby, but it was the dismissals of five players, four in the final minute, which will create the headlines.
Maoulida struck early in the second half, with Ajaccio's hopes of a comeback not helped by a second yellow card for Mathieu Chalme 10 minutes from time.
However, what had been an entertaining match was overshadowed by events in the dying moments when Dennis Oliech's dismissal for an ugly challenge on home goalkeeper Mickael Landreau sparked a brawl which resulted in red cards for teammate Benjamin Andre and Bastia duo Florian Thauvin and Jerome Rothen.
Evian played out an uninspiring goalless draw with Toulouse, while Gael Danic's 79th-minute penalty ensured Valenciennes claimed a 1-1 draw at Lorient.
The hosts had taken a third-minute lead through Kevin Monnet-Paquet's low strike, but Danic slotted home from the spot late on after Lorient defender Arnaud Le Lan had handled in the area.
Information from Press Association was used in this report.