Memphis Depay thundered home an effort deep into stoppage time at the Stade de Lyon to defeat Paris Saint-Germain, and close the gap on the leaders to eight points.
Read below for all the action in Ligue 1 this weekend:
Caen 0-2 Marseille
Goals from Dimitri Payet and Florian Thauvin helped Marseille to a comfortable victory at Caen.
Rudi Garcia’s side struggled to create chances in the opening period, but Luis Gustavo squandered two good opportunities and Clinton N’Jie also headed over from close range.
In the 55th minute, the visitors were awarded a penalty following Vincent Bessat’s challenge on Bouna Sarr.
Former West Ham wide-man Payet stepped up, and stroked home the spot kick to put Marseille in front.
N’Jie saw another shot saved before the visitors doubled their lead, to secure a crucial three points in the race for Europe.
Thauvin picked up the ball just outside the penalty area and rifled home an effort into the top left corner, to move Marseille into second place before Monaco and Lyon’s matchups this weekend.
Nantes 0-1 Bordeaux
Bordeaux have announced that Gus Poyet will replace Jocelyn Gourvennec, who was dismissed by the club after a string of poor performances.
The visitors travelled to Nantes without a manager, but put in a battling performance to secure an important three points.
Nicolas de Preville and Gaeten Laborde saw early efforts from outside the box blocked, before the former handed Bordeaux the lead after 26 minutes.
Youssouf Sabaly delivered into the penalty area, and de Preville headed home past Ciprian Tatarusanu and into the far corner.
Diego Carlos, starting after his suspension was overturned following the controversy including referee Tony Chapron, headed straight at Benoit Costil, before the visitors resisted a late rally from Nantes to earn a crucial victory.
Amiens 3-1 Guingamp
Amiens eased their relegation worries after a 3-1 home victory over mid-table opponents Guingamp.
The home side made the breakthrough after 16 minutes. Moustapha Diallo brought down Thomas Monconduit inside the penalty area, and Moussa Konate slotted home the resulting spot-kick.
Guingamp quickly looked to equalise, and went close minutes later when Jimmy Briand sent an effort past the right-hand post. But the visitors were level on the half hour mark when Marcus Coco drilled a shot into the top corner, from Yannis Salibur’s assist.
But Amiens retook the lead with ten minutes left to play. Harrison Manzala delivered into the penalty area, and Konate cooly slotted home his second.
Two minutes later, and the home side wrapped up the three points. Mathieu Bodmer found the back of the net after Manzala struck the post, to send Amiens three points clear of the drop zone.
Montpellier 2-1 Toulouse
Toulouse’s worrying form continued with another away defeat, this time to Montpellier who found the winner deep into stoppage time.
The home side threatened early on with the better opportunities, but the deadlock was broken by a moment of individual brilliance from Toulouse’s Giannelli Imbula. The former Stoke City midfielder picked up the ball 30 yards out, before striding forward and smashing an effort past Benjamin Lecomte.
But five minutes before the interval, Toulouse were reduced to ten men after Max Gradel was shown a straight red for chopping down Jerome Roussillon.
Montpellier soon used their man advantage and found the equaliser, when Junior Sambia fired home a free kick into the top left corner.
The second period saw chances squandered by both sides, before the 95th minute when the home side tucked away the winner. Giovanni Sio was on hand to stab home from close range to steal a point away from Toulouse, who are now firmly in a relegation scrap.
Rennes 1-0 Angers
Rennes moved within three points of fifth place Nantes, after a tight home win over Angers.
Adrien Hunou flicked a header wide in the fourth minute, before Jeremy Gelin rifled over the target in the better of the early chances.
The home side continued to ramp up the pressure, but Flavien Tait’s long-range effort tested Tomas Koubek in the Rennes goal just after the half time break.
James Edward Lea Siliki struck the post in the 71st minute following Benjamin Bourigeaud’s pass, and Karl Toko Ekambi saw his follow-up blocked from a tight angle. Tait also fired against the woodwork for Angers nine minutes from time, as his 35 yarder came close to stealing all three points for the visitors.
But the game was decided from the penalty spot moments later, when Bourigeaud slotted home from 12 yards following Mateo Pavlovic’s handball.
Strasbourg 3-2 Dijon
Kenny Lala’s penalty ten minutes from time secured three points for Strasbourg, in a pulsating clash in France’s top flight.
The home side took the lead early on when Jonas Martin picked out Jean Eudes Aholou, who finished past Baptiste Reynet. And Strasbourg continued to dominate proceedings, doubling their lead in the 19th minute.
Oussama Haddadi brought down Martin Terrier inside the penalty area, and Kenny Lala calmly converted the spot kick.
But just after the half hour mark, Dijon halved the deficit when Julio Tavares drilled home an effort past Kossi Agassa.
Strasbourg squandered chances to make their lead more comfortable, and the visitors punished them on the stroke of half time through Oussama Haddadi.
But a tight encounter in the second half was eventually decided by Lala’s second goal of the game.
Troyes 1-0 Lille
Relegation-threatened Lille succumbed to a 1-0 away defeat at Troyes.
Jimmy Giraudon squandered the best chance of the opening half an hour, when he arrowed a shot wide of the far upright following Oswaldo Vizcarrondo’s headed flick-on.
And the home side scored the only goal of the game a minute before the break. Mathieu Deplagne delivered into the penalty area, and Adama Niane converted past Mike Maignan to secure the victory for Troyes, who sit in 15th place.
Nice 1-0 St Etienne
Wylan Cyprian scored on his return to Nice’s line-up, to plunge St Etienne further into relegation trouble.
The visitors carved out the early chances, with Leo Lacroix, Paul-Georges Ntep and Loic Perrin all squandering openings in the first 20 minutes.
But a couple of minutes later, Nice opened the scoring firmly against the run of play. Cyprien hovered over a free kick, and blasted a superb effort into the back of the net past Stephane Ruffier.
Rumoured Barcelona target Jean Michael Seri fired over the crossbar when teed up by Mario Balotelli, before the Italian striker then saw his effort sail just past the upright.
Despite a late flurry of chances in the second half, St Etienne were unable to find the equaliser and slip ever closer to the drop zone with every passing matchday.
Monaco 3-1 Metz
Monaco comfortably dispatched rock-bottom Metz to continue their challenge for an automatic European qualifying place.
The visitors defended well throughout the opening period, with efforts from Radamel Falcao and Jonathan Rivierez forcing good saves from Eiji Kawashima.
But Monaco made the breakthrough in the second minute of additional time, when Jorge drilled home.
And things went from bad to worse for Metz, when their goalkeeper was shown a straight red card in the 50th minute after rushing out to foul Adama Diakhaby.
Monaco continued to turn the screw, and doubled their lead when Rachid Ghezzal found the back of the net after a pass from Thomas Lemar.
A consolation goal for the visitors from Ibrahima Niane was soon made redundant by Rony Lopes, who sealed the three points for Leonardo Jardim’s side.
Lyon 2-1 Paris Saint-Germain
Lyon closed the gap on first place PSG by eight points, after Memphis Depay’s winner at the death condemned the leaders to their second away defeat of the season.
The home side opened the scoring after only two minutes, when Nabil Fekir curled home a magnificent free-kick into the far corner past Alphonse Areola.
And to make things worse for last season’s runners-up, Kylian Mbappe had to be replaced by Julian Draxler, after the young Frenchman was wiped out by Anthony Lopes while challenging for a lofted delivery into the penalty area.
But deep into added time at the end of the opening period, Unai Emery’s side were level. Dani Alves delivered into the box, and Layvin Kurzawa volleyed a thunderous shot into the roof of the net.
Just before the hour mark, Dani Alves was shown a red card for clashing with the referee, after the man in the middle had originally cautioned the veteran full back for a foul on Tanguy NDombele.
Thiago Silva and Mariano both traded missed chances soon after, before deep into stoppage time Memphis Depay flashed a shot past Areola and into the top left corner to steal maximum points at the death.