A massive win for Bastia provided another twist in the relegation battle, while an enthralling encounter between Nice and PSG may have decided the title race.
Friday 28 April
Angers 1-2 Lyon Venue – Stade Jean Bouin
Lyon came out on top against a ten-man Angers side to keep a firm grasp on a European place for next season.
Mathieu Valbuena and Nabil Fekir ensured Les Gones had a two-goal lead at the half-time interval but Cheikh Ndoye reduced the deficit shortly after the restart for Angers.
There was no way back into the game for the hosts and a result became even more unlikely when Mateo Pavlovic received a red card for a challenge on Corentin Tolisso.
Lyon climbed back above Bordeaux to reclaim 4th spot; while Angers remain 14th knowing a win would secure their Ligue 1 safety.
Saturday 29 April
Monaco 3-1 Toulouse Venue – Stade Louis II
After going a goal down, Monaco fought back to earn three more points in the title race as they defeated Toulouse.
A shock goal from Ola Toivonen gave Toulouse the lead within a minute of the second half restart, but Kamil Glik levelled the scores moments later to get the home side back on track.
Kylian Mbappe hasn’t put a foot wrong for weeks and he was on the score sheet once again, converting just past the hour. Thomas Lemar made sure of the points in the 75th-minute to guide his side a step closer to the championship.
Another Monaco win meant their hopes were resting on Nice as they faced PSG, but Toulouse slipped to 12th after failing to win for a fourth consecutive game.
Bastia 1-0 Rennes Venue – Stade Armand Cesari
A huge win for bottom club Bastia saw them move to within two points of safety with a game in hand; leaving their opponents Rennes in 9th place.
Enzo Crivelli’s 68th-minute strike was all that separated the two sides at the Stade Armand Cesari.
It could prove to be a significant three points for Bastia, who have won two of their last three, as they continue to fight for their safety.
Guingamp 0-2 Saint-Étienne Venue – Stade du Roudourou
Two goals in the final half an hour meant Saint-Étienne were victorious at the Stade du Roudourou against Guingamp.
Vincent Pajot opened the scoring in the 61st-minute and Les Verts were awarded a late penalty when Christophe Kerbrat brought down Romain Hamouma. The Frenchman picked himself up to convert the spot-kick and secure the victory.
Guingamp’s second successive defeat left them 10th while Saint-Étienne’s game in hand is keeping their European hopes alive in 7th.
Metz 2-1 Nancy Venue – Stade Saint-Symphorien
A big clash at the bottom of the league saw Metz come out on top, leaving Nancy still in the thick of the relegation battle.
Ismaila Sarr’s goal was cancelled out by Faitout Maouassa as Nancy fought back just before the break, however Opa Nguette’s effort in the early stages of the second period was enough as the hosts held on.
Metz remain 15th but are now six points above the bottom three, while Nancy sit 19th and one point adrift.
Montpellier 0-3 Lille Venue – Stade de la Mosson
Similar to the previous campaign, Lille have turned a poor season into a potential top half finish as the win at Montpellier made it back-to-back 3-0 victories.
Nicolas de Preville converted from the spot after just 13 minutes when Ellyes Skhiri fouled Sebastien Corchia.
Les Dogues took their form into the second half and goals from Xeka and Martin Terrier made for a comfortable win.
Lille moved up to 11th as a result, strengthening the gap between them and Montpellier in 13th.
Nantes 1-0 Lorient Venue – Stade de la Beaujoire
Lorient failed to make another step to avoiding relegation with a late defeat at the Stade de la Beaujoire.
It looked as though Les Merlus were going to earn a point but Emiliano Sala struck in the 89th-minute for Nantes.
One point keeps Lorient outside the danger zone in 16th but Nantes continue to fly high in 8th position.
Sunday 30 April
Caen 1-5 Marseille Venue – Stade Michel d’Ornano
A thrashing from Marseille left Caen in trouble and damaged their goal difference ahead of a momentum-swinging relegation dogfight.
There were three goals inside the opening nine minutes as Florian Thauvin and Maxime Lopez opened the scoring for Les Olympiens but Ivan Santini pulled a goal back for Caen.
Marseille then turned on the heat with Lopez completing a brace just before the half-hour mark and Thauvin scoring another two goals in the second half to win the match ball.
Caen slipped into the bottom three while Marseille remain 6th and in pursuit of their rivals.
Dijon 0-0 Bordeaux Venue – Stade Gaston Gérard
Bordeaux dropped points at the Stade Gaston Gérard, meaning they dropped to 5th but it was a result that took Dijon out of the bottom three ahead of a tough few remaining weeks.
A fairly even game was reflected in the team set-ups as both sides showed a great deal of attacking intent, with Dijon just having the edge.
Dijon’s turn in form might have occurred at just the right time as they have made it two without defeat, ending Bordeaux’s run of three successive wins.
Nice 3-1 Paris Saint-Germain Venue – Allianz Riviera
An eventful evening at the Allianz Riviera saw a collapse of PSG as Nice may well have ended their title hopes.
Mario Balotelli opened the scoring for Les Aiglons and a wonder strike from Ricardo Pereira ensured Nice were fast out of the blocks in the second half.
Marquinhos had pulled a goal back for Les Parisians to set up an intriguing last half an hour, but Thiago Motta’s dismissal for violent conduct made it difficult for the visitors. The result was confirmed with an Anastasios Donis header two minutes into added time, moments before Angel Di Maria was also given his marching orders.
PSG’s loss means Monaco now have the opportunity to move six clear with three games remaining, while Nice are now breathing down the necks of the defending champions.