Montpellier put pressure on Paris Saint-Germain in the French title race by taking the provisional lead with a 1-0 victory over Saint-Etienne on Saturday.
Olivier Giroud notched his 18th goal this season by volleying home from the edge of the box in the 89th minute.
"We told ourselves before the match that we had to believe in ourselves and stay calm," Giroud told RTL radio. "I hope it's the start of a nice journey in this final sprint."
Saint-Etienne was down to 10 men from the 76th when defender Jean-Pascal Mignot was red-carded for fouling Remy Cabella who was clean through on goal.
PSG can restore its two-point lead with a win over Bordeaux on Sunday.
Also, it was: Evian 0, Lille 3; Lyon 2, Sochaux 1; Nice 1, Marseille 1; Valenciennes 1, Rennes 0; Ajaccio 1, Lorient 1; Brest 0, Nancy 1.
Belgium midfielder Eden Hazard shone again for defending champion Lille by scoring the opening goal and setting up the second.
Hazard converted a penalty in the 36th after Evian centerback Cedric Cambon fouled him.
Lille forward Dimitri Payet doubled the lead in the 55th with an assist from Hazard then Benoit Pedretti sealed the win with a long-range strike off the post in the 67th.
Lille remained in third place, seven points behind Montpellier.
"We are hanging on to this third place and we expect to keep it," Hazard said. "We hold all the cards to finish on a high and qualify for next season's Champions League."
In Lyon, centerback Dejan Lovren put the hosts ahead by heading home a free kick from Kim Kallstrom in the third minute.
Bafetimbi Gomis capitalized on a counterattack to make it 2-0 with a chip in the 65th.
Sochaux substitute Modibo Maiga scored a consolation goal in the 71st.
"It's a very important victory," Lyon coach Remi Garde said. "We ground it out because it was a bit toilsome at times. Sochaux caused us some problems but I think we were strong mentally."
Lyon still trailed Lille by four points but kept alive its hopes of a Champions League spot whereas Sochaux remained in the relegation zone.
Sochaux forward Edouard Butin will likely miss the rest of the season as he injured his knee while colliding with Lyon goalkeeper Hugo Lloris in the 11th.
In Nice, fullback Fabian Monzon salvaged a draw for the hosts with a spot kick in the 76th after Marseille defender Rod Fanni fouled Esmael Goncalves.
Marseille saw midfielder Charles Kabore sent off on the stroke of halftime for kicking Elliot Grandin but still managed to take the lead in the 56th when Ghana winger Andre Ayew converted a cross from Cesar Azpilicueta.
Marseille snapped a seven-game losing streak in all competitions but virtually fell out of contention for a Champions League berth.
"It's only a point but it helps stop a bit of the bleeding," Marseille coach Didier Deschamps said. "In the first half, we felt the downward spiral was still in the players' heads and feet. But paradoxically, it's in the second half when we had one less player that we did better things."
Valenciennes took revenge three days after losing to Rennes 3-1 in the French Cup quarterfinals. Gael Danic converted a penalty for the hosts in the 13th after Rennes defender Jean-Armel Kana-Biyik tripped Vincent Aboubakar.
Brazilian striker Araujo Ilan earned a precious point for promoted Ajaccio in the relegation battle by levelling in the 60th. Defender Gregory Bourillon initially gave Lorient the lead by nodding in a corner in the fifth minute.
Nancy moved away from the relegation zone with a low strike from midfielder Bakaye Traore in the 18th.
On Sunday, Auxerre visits Toulouse and Dijon faces Caen.