On the back of Champions League elimination, les Gones rallied to beat Rudi Garcia's men to move to within four points of the champions thanks to two first-half goals
Alexandre Lacazette put the hosts ahead after 12 minutes before Lisandro Lopez doubled the advantage with a fine finish just before half-time. Aurelien Chedjou reduced the deficit in first half injury time, though even with Dejan Lovren seeing red late on, the visitors failed in their attempts to find an equaliser.
Remi Garde rang the changes from the side that suffered elimination from the Champions League at the hands of APOEL on Wednesday evening. Mohamadou Dabo replaced Aly Cissokho, with Dejan Lovren making his first start in almost three months in place of Bakary Kone.
Clement Grenier and Alexandre Lacazette would be given the nod ahead of Bafetimbi Gomis and Jimmy Briand. Rudi Garcia was also boosted by the return of Mickael Landreau, with youngster Lucas Digne replacing David Rozehnal as Frank Beria assumed the unusual position of centre-back.
After a subdued start, it would be the hosts who clicked into their rhythm in the early stages. Lisandro did well to cut in to feed Lacazette, though the youngster's weak effort would do no harm to Landreau. Moments later, however, it certainly did as Lyon stepped up their attacking tempo.
Maxime Gonalons, who endured a poor game in Cyprusl in midweek threaded a ball to Dabo, with the left-back accelerating past Mathieu Debuchy. The incoming cross met the head of Lacazette, who rose highest to power home past Landreau after 12 minutes to hand an embattled les Gones the lead.
The hosts kept the reigning French champions under control for much of the first half as Kim Kallstrom let fly from inside the box, but his effort whistled agonisingly over the bar. Les Dogues would then create their first gilt-edged chance on the half-hour.
Eden Hazard, under the watchful eye of Manchester United boss Sir Alex Ferguson in the stadium, picked out Benoit Pedretti, who in turn laid off Nolan Roux. The January signing from Brest did well to evade his marker, and powered an effort in towards the side-netting, albeit under the disadvantage of an acute angle.
Lyon doubled their lead seven minutes before the break. Poor defending from the visitors was another major contribution as Lacazette pounced on a loose ball from Balmont, feeding Lisandro, who finished with aplomb after 38 minutes. Balmont would be substituted after half-time in favour of Dimitri Payet.
Rudi Garcia's men halved the deficit on the stroke of half-time, perhaps against the run of play. Pedretti's delivery from the corner wasn't dealt with sufficiently, leaving Chedjou to head in past Lloris as the sides left for the interval with the score at 2-1.
The visitors almost equalised early into the second period. A loose ball into the box was controlled by Beria, albeit with his arm, with Nolan Roux unable to force the ball beyond Hugo Lloris.
By this point, the match was very much an attacking affair, and both sides would hit the woodwork within minutes of each other. Michel Bastos' free kick from distance cannoned off the crossbar leaving Landreau stranded. At the other end, Digne's inch perfect cross met the head of substitute Tulio de Melo, whose powerful header was also denied by the bar.
The hosts were subsequently dealt a blow when Lovren, making his first start since mid-December was given his marching orders after incurring a second yellow card with a rash challenge on Hazard, leaving Garde to shuffle the pack to preserve their slender lead.
Lille went all out in search of the equaliser, and were denied by Tulio's profligate finishing in the closing stages. A fine flowing move from the right involving Gianni Bruno saw the Belgian youngster cut back in towards the Brazilian, who squandered the chance with a shot that flew wide as les Gones clung on for a first win in five games.
Lyon move up to sixth, four points behind Lille in the final Champions League qualification spot. The reigning Ligue 1 winners host Valenciennes next weekend whilst Remi Garde's men encounter Saint Etienne in the Rhone derby.