Paris Saint-Germain's 20-game unbeaten run in the French league this season ended with a 2-1 defeat at Lyon on Sunday.
PSG has lost three times this season, including away to Liverpool in the Champions League and at home to Guingamp in the League Cup, but this was its first Ligue 1 loss since a 2-0 home defeat to Rennes in the penultimate game of last season.
Despite the setback, PSG leads second-placed Lille by 10 points, having played two games less. Yet it was a huge boost for Lyon in the quest to finish second and qualify automatically for next season's Champions League. Lyon is three points behind Lille, with 15 matches remaining.
Both goalkeepers stood out in a great advert for the French league. Rarely tested in the top tier in France, PSG's defense ultimately fell short under the watchful eye of Manchester United coach Ole Gunnar Solskjaer, who was present at the game.
A resurgent United side hosts PSG in the first leg of their Champions League last-16 game on Feb. 12. Solskjaer will have noticed glaring deficiencies at the back, which meant PSG goalkeeper Alphonse Areola had to make six saves in a pulsating first half.
France forward Nabil Fekir won it for Lyon when he coolly slotted in a 49th-minute penalty, after center half Thiago Silva impeded striker Moussa Dembele as he burst into the area.
Dembele's towering header from a pinpoint Leo Dubois cross drew Lyon level in the 33rd after Angel Di Maria silenced the home crowd with an opening goal after seven minutes.
Lyon midfielder Houssem Aouar clumsily lost possession dribbling out of his own half, and Julian Draxler took the ball off him before feeding Di Maria inside the left of the penalty area. The Argentina winger advanced and finished with a low strike across the body of Lyon goalkeeper Anthony Lopes, before provocatively dancing in front of home fans.
PSG then weathered a barrage of Lyon pressure.
Preferred to Gianluigi Buffon for this game, in an ongoing goalkeeper rotation by coach Thomas Tuchel, Areola was inspired.
Midway through the first half, he made a double stop to first thwart Bertrand Traore and then surged off the ground to palm away Memphis Depay's follow-up effort from close range.
But then Areola stumbled coming out to meet a cross from Dubois, and Dembele rose superbly to level at 1-1.
The action, at both ends, was unrelenting.
Di Maria almost grabbed his second goal late in the first half, only for center half Jason Denayer to deny him with a spectacular diving header near his line.
Silva was adjudged to have obstructed Dembele as PSG conceded its 11th penalty this season — a statistic Solskjaer will doubtless know.
But he will also have seen that PSG has immense firepower, and Lopes needed to be at his best on Sunday.
He made three saves in quick succession, including a stunning finger-tip save with his left hand to keep out a stinging drive from Kylian Mbappe — who was again denied by Lopes with 20 minutes left.
"It's difficult to say, we had chances as well," PSG's Draxler said when asked if Lyon deserved to win. "But they played very well in the first half. We knew beforehand that Lyon is a classy team."
Lyon faces Barcelona in the last-16 of the Champions League, having beaten Manchester City away and drawn with City at home during the group stage.