Marcus Coco struck twice as Guingamp came from behind to stun Lyon 3-1 at the Parc Olympique Lyonnais on Saturday.
Les Gones took the lead through Alexandre Lacazette's penalty eight minutes before half-time, after visiting midfielder Moustapha Diallo had tripped Maxime Gonalons.
But Guingamp were back on level terms within moments of the restart. Jimmy Briand won possession in the Lyon half and his attempted cut-back fell to Yannis Salibur, who fired past Anthony Lopes.
The visitors took the lead...
Sloan Privat's first-half goal was enough for Guingamp to beat a Lille side who have now lost five of their first six Ligue 1 matches.
Guingamp scored from the first noteworthy chance of the game in the 32nd minute, Privat stroking home a pass from Jimmy Briand.
Eder came close to an equaliser for Lille, while Yannis Salibur brought a comfortable save from goalkeeper Vincent Enyeama before the break as Guingamp looked for a second goal.
Briand hit the side-netting and then had a shot saved by Enyeama...
Adama Diakhaby's injury-time strike gave Rennes a 1-0 home win against Breton rivals Guingamp.
Karl-Johan Johnsson looked to have earned the 10-man visitors a point when he saved Kamil Grosicki's penalty. Moustapha Diallo was sent off for a second yellow card after a shirt pull on Paul-Georges Ntep which led to the award of the spot kick.
Johnsson also kept out a header from Giovanni Sio in the first half while Guingamp might have won it late on but Yannis Salibur shot wide with just the goalkeeper...
Enzo Crivelli scored the second-half winner for Bastia but was sent off three minutes later in his team's 1-0 Ligue 1 win at home to Guingamp.
Both teams finished with 10 men, Guingamp the first to feel the heat after defender Marcal was sent off for a second bookable offence seven minutes before half-time.
The hosts made it count 14 minutes from the final whistle, when Crivelli was set up by his fellow forward Lassana Coulibaly.
But he was gone too soon afterwards, also for a second yellow card, leaving...