Lyon reclaimed second place in the Ligue 1 table after goals from Nabil Fekir and Houssem Aouar clinched a 2-0 victory at Guingamp.
Les Gones, who are now eight points behind leaders Paris St Germain, went ahead when Fekir tucked Maxwel Cornet’s pass away in the 25th minute for his 15th league goal of the season.
Shortly before the hour mark Aouar boosted Lyon further clear after collecting Ferland Mendy’s through ball.
Benjamin Andre grabbed a last-gasp winner as Rennes recovered to defeat Lille at the Stade Pierre-Mauroy.
Junior Alonso gave Christophe Galtier’s hosts the upper hand in the 41st minute but Rennes substitute James Lea Siliki equalised with five minutes left in the game.
With 60 seconds remaining, Alonso made it 2-1 to end a run of three straight losses for Rennes.
Max Gradel’s penalty in the sixth minute of stoppage time spared Toulouse from a home loss to Nantes.
Rene Krhin gave Claudio Ranieri’s high-flying Canaris an early advantage but former Leeds winger Gradel made it 1-1 with the last kick of the game.
Romain Thomas scored twice as Angers beat Troyes 3-1 to escape the relegation zone, with their opponents taking their place in the bottom three.
Thomas’ 33rd-minute headed opener was cancelled out by Saif Khaoui after half-time but the former nodded in his second before the hour, leaving Pierrick Capelle to rubber-stamp the outcome late on.
Amiens called time on a five-game losing streak as Moussa Konate forced a 1-1 draw with Montpellier after Ellyes Skhiri had fired La Paillade ahead at the Stade de la Licorne.
Yann M’Vila had a St Etienne debut to forget as Les Verts were thumped 3-0 at bottom side Metz.
Emmanuel Riviere scored first from the penalty spot and Mathieu Dossevi doubled the hosts’ lead before, with time running out, Nolan Roux added gloss to the scoreline.