Paris Saint-Germain's march towards another Ligue 1 title was slowed on Sunday as they went down 2-0 at home to Rennes, a result that allowed Marseille to close the gap on the leaders to seven points with 10 games remaining.
Kylian Mbappe had an effort disallowed for offside before Karl Toko-Ekambi put Rennes in front with a magnificent strike right on half-time.
Arnaud Kalimuendo made it 2-0 three minutes after the restart against his former club, as PSG – faced with a defensive injury crisis – slumped to a first home league defeat of the campaign.
It is the Parisians' fourth Ligue 1 loss this season, all of them in 2023, and the second time they have been beaten by Rennes. They also lost when the teams last met in Brittany in January.
Marseille responded by winning 2-1 away to Reims later, with Alexis Sanchez scoring twice.
"A defeat is always upsetting. Obviously I can't be happy with the way the match went but in the context, with the number of players we had out, we knew we were going to have difficult moments in defence," said PSG coach Christophe Galtier.
PSG only have a ninth Ligue 1 title in 11 seasons left to play for after being knocked out of the Champions League in the last 16 by Bayern Munich.
Galtier has insisted that the prospect of what would be a French record 11th top-flight title is sufficient motivation for his team, but their performance indicated otherwise.
"The objective is to win the league. Will this defeat mean the board will consider my future? Maybe. But everything needs to be put into context," Galtier added when asked about his position.
"There are no excuses but there are reasons for it."
The result allowed Rennes to reclaim fifth place from Lille in the fight for European qualification.
"To beat Paris twice in the same season says something about us. If we are capable of taking six points out of six against such a team, it means we have progress to make so we can do that in 90 percent of our matches," said Rennes coach Bruno Genesio.
PSG have been severely hampered by injuries, with Neymar recovering from ankle surgery and their defence decimated.
Achraf Hakimi, Presnel Kimpembe, Marquinhos, Sergio Ramos and Nordi Mukiele were all sidelined, leaving an almost unrecognisable back line featuring 17-year-old El Chadaille Bitshiabu.
PSG have usually been able to rely on their attack for inspiration but Mbappe could not add to his 19 league goals this season and Lionel Messi was denied by veteran Rennes goalkeeper Steve Mandanda, who was in fine form.
Cameroon international Toko-Ekambi, brought up in Paris as a PSG fan, opened the scoring with an emphatic finish past goalkeeper Gianluigi Donnarumma after latching onto a long ball forward.
The home side were left facing an uphill struggle as they conceded again just after the interval, with Lesley Ugochukwu's low centre being turned in by Kalimuendo.
It was a seventh Ligue 1 goal of the campaign for the 21-year-old, who joined Rennes last summer from PSG after the capital club decided not to keep the forward who had performed well on loan at Lens last season.
Marseille moved back above Lens, who beat bottom side Angers 3-0 on Saturday, by coming from behind to end Reims' long unbeaten run.
Reims had not lost a Ligue 1 game under 30-year-old Belgian-born English coach Will Still, their unbeaten run stretching back 19 games to September.
They went ahead early on when on-loan Arsenal striker Folarin Balogun scored his 17th league goal this season.
However, Sanchez equalised soon after from a free-kick and then struck what proved to be the winner before the half-hour mark.
Fourth-placed Monaco won 2-0 at Ajaccio as Wissam Ben Yedder scored his 17th league goal this season and Krepin Diatta also netted.
Nice lost ground in the race for Europe but are now unbeaten in 13 games since Didier Digard was named coach in January after a 1-1 draw at home to Lorient.
There were also wins for Strasbourg and Montpellier.