Lille booked their place in the qualifying rounds of the UEFA Champions League with a thumping 4-1 victory away to Lorient.
Les Dogues needed a win to hold off the challenge of St Etienne, two points behind, and delivered in emphatic style despite falling behind to Jeremie Aliadiere’s 22nd-minute goal.
Salomon Kalou hit back 10 minutes later, and in the second half Nolan Roux and Kalou both scored before a late Gregory Bourillon own goal confirmed Lille’s place in Europe’s top competition.
St Etienne will have to content themselves with the Europa League despite a 3-1 win over relegated Ajaccio.
Although there will be disappointment at falling two points short of the bigger goal, St Etienne can reflect on an excellent campaign after securing their 20th victory.
Loic Perrin bagged a brace either side of Mevlut Erding’s goal but the outstanding Max-Alain Gradel missed a penalty before Issa Baradji and Ajaccio bid farewell to the top flight with a goal deep in stoppage time.
Lyon booked an 18th consecutive season in Europe as Bakary Kone’s early goal secured a 1-0 victory at Nice.
Les Gones were looking nervously over their shoulders at sixth-placed Marseille before kick-off and they were right to be concerned as the southerners beat Guingamp 1-0 at the Stade Velodrome through Andre Ayew’s eighth goal of the season.
Remi Garde’s last act as Lyon boss may have been delivering qualification for the Europa League, but he soured his own farewell somewhat by being sent to the stands for arguing with the referee late on.
Paris St Germain celebrated their second title in two years in style by breaking the record for the most wins in a season with a 4-0 rout of lowly Montpellier.
Zlatan Ibrahimovic rounded off a remarkable year, notching his 41st goal in all competitions after Ezequiel Lavezzi had earlier nudged them in front.
Second half strikes from Lucas Moura and Adrien Rabiot completed the scoring to round off PSG’s 27th win of the season.
Monaco had to settle for second in the table but with a second club record points haul of their own, drawing 1-1 with Bordeaux to move on to 80 points.
They needed substitute Lucas Ocampos’s second-half equaliser to do it after the visitors took the lead through Guillaume Hoarau’s 15th-minute strike.
Departing Bastia coach Frederic Hantz and retiring goalkeeper Mickael Landreau bowed out with a goalless draw in their finale against Nantes.
Reims capped a disappointing end to their season by losing 3-1 at home to mid-table rivals Rennes.
Hubert Fournier’s side had looked on course for a lofty finish but a miserable run which included four defeats in their last five games means they had to settle for 11th spot, one place ahead of Rennes.
The visitors had the points all-but sewn up by the hour mark thanks to goals from Abdoulaye Doucoure, Ola Toivonen and Paul-Georges Ntep, and Reims could only respond through Diego’s late strike.
Toulouse wrapped up their campaign with a 3-0 win over Valenciennes thanks to a Wissam Ben Yedder hat-trick.
Sochaux suffered relegation from Ligue 1 for the first time in their history after losing 3-0 to rivals Evian in Saturday night’s ‘Survival Final’ at the Stade Auguste Bonal.
Top-flight members since their foundation in 1928 and one of only five remaining top-flight clubs who participated in the inaugural 1932-33 Ligue 1 season, Sochaux had flirted with the drop throughout the current campaign before staging a remarkable revival to move to within one point of Evian and safety.
It was therefore a case of winner-takes-all in the north east – and tensions between the two clubs were especially high given coaches Herve Renard and Pascal Dupraz had spent all week sniping at one another through the press.
On the night, it was Sochaux who cracked under the pressure, and Evian secured a fourth consecutive campaign in the top-flight with a goal from Gael Angoula and two from Daniel Wass.