Nice confirmed their Ligue 1 status, but they did it the hard way, coming from behind to beat bottom club Lens.
Marseille kept their hopes of Champions League qualification alive after a late comeback saw them beat Monaco 2-1.
St Etienne strengthened their grip on European qualification by hammering Nice 5-0 at the Stade Geoffroy-Guichard.
Caen put a second point between themselves and the Ligue 1 relegation zone after a 1-1 draw with Nice.
Top scorer Alexandre Lacazette continued his superb form for Lyon, who took top spot in the table after beating Evian.
Rennes extended their unbeaten record at home to six games as a last-minute goal earned a 2-1 victory over Nice.