Lyon moved within two points of Ligue 1 leaders Montpellier with a 2-1 victory over Evian at the Stade Gerland in a match which saw both teams finish with 10 men.
Jimmy Briand and Lisandro Lopez were the men on target for Les Gones, Yannick Sagbo equalising for the promoted visitors in between.
Clement Grenier and Fabrice Ehret were sent off in separate incidents late on but there were no further goals.
Predictably, Lyon looked the more dangerous from the outset, and could have gone ahead in the 14th minute.
Anthony Reveillere’s cross found Lisandro Lopez, but his diving header was saved by Evian goalkeeper Stephan Andersen.
Briand rounded off a counter-attack by firing narrowly wide 13 minutes later, but the home fans did not have to wait too much longer for the breakthrough.
Alexandre Lacazette burst through the visitors’ defence 10 minutes before half-time and lashed in a shot which came back off the post, but Briand was on hand to pounce on the rebound and tap home from close range.
Evian appealed for a penalty four minutes later when Aldo Angoula’s header from Cedric Barbosa’s corner looked to have been blocked by the arm of Reveillere, but the referee waved away their claims.
There was still time before the break for Evian to draw level, though, as Sagbo found a way past Cris and then slotted his low shot between the legs of Lyon goalkeeper Hugo Lloris.
Bakary Kone headed Kim Kallstrom’s free-kick inches over the bar with Andersen beaten on the stroke of half-time as Les Gones sought an immediate response, but the teams went in at the interval on level terms.
It was all Lyon at the start of the second period, with Cris, Lisandro and Kone all just unable to connect with Kallstrom’s free-kick and then Andersen pulling off a brilliant reflex save to deny Angoula.
Evian almost grabbed a second goal on the counter-attack, but Saber Khelifa’s powerful drive was tipped onto the crossbar by Lloris.
That save proved crucial as, soon after, Lyon re-established their lead.
In the 70th minute, Briand was released by Bafetimbi Gomis on the right and crossed to the far post for Lisandro to head past Andersen.
Lacazette went close to extending the hosts’ lead 13 minutes from time but saw his header fly narrowly wide from Briand’s cross.
Lyon substitute Grenier received his marching orders in the 87th minute – just six minutes after his introduction – following a clumsy tackle on Angoula, and Ehret evened up the numbers when he too saw red for a stoppage-time last-man foul on Gomis in a hectic finale.