Monaco lost ground in the Ligue 1 title race as they went down 2-0 at Saint-Etienne.
Fabien Lemoine and Romain Hamouma were the men on target as Christophe Galtier's side stunned their visitors and handed Paris Saint-Germain the opportunity to open up an eight-point cushion at the summit on Sunday night when they face Marseille.
The result also lifted Les Verts to third in the standings, albeit eight points behind Claudio Ranieri's team.
Reims continued their push for a top-four finish and European football by beating relegation-threatened Valenciennes 3-1.
Goals from Nicolas de Preville, Prince Oniangue and Gaetan Charbonnier earned the home side their third win in four games as they closed the gap on fourth-placed Lille to four points.
Mathieu Dossevi's reply came too late for Valenciennes, who are third from bottom in the standings and five points from safety.
Fellow strugglers Sochaux served notice that they will not go down easily with a stirring 2-0 win at home to Europe-chasing Bordeaux.
Jordan Ayew and Cedric Bakambu grabbed the goals in the final 20 minutes to ensure Herve Renard's side did not lose ground in the fight for survival, with the club now level on points with Valenciennes.
Guingamp further eased their relegation fears with a 2-0 victory over Rennes that sees them leapfrog their Brittany rivals into 13th place.
Thibault Giresse's superb 39th-minute volley set Guingamp on their way and Mustapha Yatabare sealed the triumph with a stoppage-time penalty at the end of the game.
Toulouse claimed their second away win from their past three matches as they saw off ten-man Nice 2-0 at the Allianz Riviera.
Second-half goals from Eden Ben Bassat and Wissam Ben Yedder made the difference for Alain Casanova's side, while Nice, who are now winless in their past four league matches, lost Lloyd Palun to a straight red card ten minutes after the break.
Lorient's poor run continued as they were held to a 1-1 home draw by Bastia.
Ecuele Manga's 35th-minute strike gave Lorient hope of ending their barren streak - they have won just once in ten games - only for Gianni Bruno to equalise shortly after half-time.