Match ends, Lille 2, Lyon 1.
Leaders Lyon lost for the first time in 12 Ligue 1 games as Lille came from behind at Stade Pierre-Mauroy.
Lyon midfielder Corentin Tolisso turned home Nabil Fekir's corner early on but the visitors then elected to sit back.
Idrissa Gueye stabbed in an equaliser after a one-two with Marcos Lopes, who curled a superb low shot in from 20 yards three minutes later to win it.
Christophe Jallet drew a save as Lyon pressed but Paris St-Germain can go top with victory over Monaco on Sunday.
Marseille, third in the table, were beaten at home by Caen on Friday and are four points off the lead.
Lyon - who last won the league in 2008 - currently have a two-point advantage over PSG but face testing trips to Montpellier and Marseille in their next two league fixtures.
Despite their lofty position, Hubert Fournier's side were cautious in Lille and barely threatened after midfielder Tolisso netted his fifth goal of the campaign.
Sparked into life after seeing the game turned around on the hour, Lyon applied pressure but Henri Bedimo could not convert a late chance and Olympique have now won just once in five games.
Elsewhere in Ligue 1 on Saturday, St Etienne are up to fourth despite only drawing 1-1 at Toulouse who slipped into the relegation zone as Evian Thonon Gaillard won 2-1 at Metz.
- 20Mendes da GraçaSubstituted forDelaplaceat 40'minutesBooked at 80mins
- 17Rony LopesBooked at 51mins
- 27OrigiSubstituted forDiabyat 90'minutes
- 3BedimoBooked at 63mins
- 21GonalonsSubstituted forN'Jieat 82'minutes
- 12FerriSubstituted forMalbranqueat 67'minutes
- 11GhezzalSubstituted forGourcuffat 67'minutes
- 10LacazetteBooked at 78mins
- Lionel Jaffredo
- Shots on Target
Second Half ends, Lille 2, Lyon 1.
Foul by Corentin Tolisso (Lyon).
Jonathan Delaplace (Lille) wins a free kick in the attacking half.
Attempt missed. Alexandre Lacazette (Lyon) header from the left side of the box is high and wide to the left. Assisted by Nabil Fekir with a cross following a corner.
Corner, Lyon. Conceded by Vincent Enyeama.
Attempt saved. Christophe Jallet (Lyon) right footed shot from the right side of the box is saved in the top centre of the goal. Assisted by Steed Malbranque.
Substitution, Lille. Abdoulaye Diaby replaces Divock Origi.
Delay over. They are ready to continue.
Delay in match Simon Kjaer (Lille) because of an injury.
Christophe Jallet (Lyon) wins a free kick on the right wing.
Foul by Idrissa Gueye (Lille).
Foul by Nabil Fekir (Lyon).
Simon Kjaer (Lille) wins a free kick in the defensive half.
Attempt blocked. Jonathan Delaplace (Lille) left footed shot from outside the box is blocked.
Foul by Steed Malbranque (Lyon).
Marcos Lopes (Lille) wins a free kick on the left wing.
Hand ball by Sébastien Corchia (Lille).
Hand ball by Nabil Fekir (Lyon).
Substitution, Lyon. Clinton N'Jie replaces Maxime Gonalons.