Lyon slipped from the Ligue 1 summit as they were beaten at Caen thanks to Benjamin Nivet's first-half penalty in a match that finished 10-a-side.
Nivet converted from the spot in first-half stoppage time, after Lyon goalkeeper Hugo Lloris had been sent off for fouling the veteran midfielder in the box.
Nivet himself saw red midway through the second half but Lyon could not take advantage as they fell to their first defeat of the season in all competitions.
Lyon twice could have been ahead by the time Lloris was dismissed, though.
After 17 minutes Anthony Reveillere released Bafetimbi Gomis, whose shot beat Alexis Thebaux but defender Thomas Heurtaux raced back to clear.
They were even closer seven minutes from the break when Michel Bastos took a free-kick from 18 yards and curled the ball against the left-hand post.
And they paid the price when a mazy run from Nivet through the visiting defence ended with him being brought down by Lloris.
Substitute goalkeeper Remy Vercoutre was called from the bench, but he dived the wrong way as Nivet converted.
The midfielder saw red himself after 62 minutes when he fouled Maxime Gonalons.
It was the signal for Lyon to go on the attack and they went close eight minutes from the end when Alexis Thebaux palmed away a free-kick from Bastos.
The last chance of the game came in stoppage time when a corner dropped to Bastos, but again Thebaux was on hand to keep the ball out.