Second-half goals from Thomas Lemar and Joao Moutinho saw Monaco move up to second place in Ligue 1 with a 2-0 win at Lorient.
Leonardo Jardim’s men leapfrogged Angers – who lost on Friday night – to sit only behind unbeaten runaway leaders Paris St Germain.
Benjamin Jeannot caused Monaco problems in the first half but Lemar broke the deadlock in the 53rd minute when his shot hit the crossbar and bounced down just over the line.
And five minutes later Monaco sealed victory when Moutinho delivered a dipping free-kick which beat Lorient keeper Benamin Lecomte.
Marseille moved into the top half of the table with an entertaining 3-1 win at Caen.
Michy Batshuayi gave the visitors an early lead which Georges-Kevin N’Koudou doubled when he fired home on the hour.
Ronny Rodelin reduced the deficit for Caen before Bouna Sarr’s powerful volley sealed the points for Marseille.
Alexander Soderlund struck a late winner as St Etienne returned to form with a hard-fought 1-0 win over bitter rivals Lyon at Stade Geoffroy-Guichard.
Soderlund fired the only goal of the game in the 76th minute as the home side rode their luck to secure only their second win in their last six Ligue 1 matches.
Paris Saint-Germain’s bid to become the first team to complete an entire French top-flight season unbeaten continues after Zlatan Ibrahimovic’s goal secured them three points against Toulouse.
The Swede headed his 24th goal of the season in the 73rd minute leaving them 23 points clear at the top of the table and yet to lose a game in the Ligue 1.
PSG have lost just one game in all competitions, a 1-0 defeat to Read Madrid in November, and the loss for Toulouse sees their six-match unbeaten run come to an end.
At the other end of the table, bottom-placed Troyes lost 4-2 to Rennes after scoring twice in the first 15 minutes to take the lead.
Rennes were awarded two penalties in the first half with Fallou Diagne scoring both and the away side went into half-time with a 3-2 lead.
Kamil Grosicki scored Rennes’ fourth with nine minutes left, leaving winless Troyes 12 points behind second-bottom Toulouse.
Guingamp move up to 18th after their 2-2 draw with Nantes – but they squandered a 2-0 half-time lead.
Nantes were allowed back into the game with a Christophe Kerbrat own goal but left it until the last minute of stoppage time to score the equaliser.
Gazelec Ajaccio and Reims also shared the points after a closely-fought match at the Stade Ange Casanova ended 2-2.
Khalid Boutaib scored after only two minutes but a brace from Nicolas de Preville saw Reims go into half-time with the lead.
However, the Corsican hosts equalised in the second half and the point lifts them to 13th in the table.
Bastia and Bordeaux scored in the second half to beat Montpellier and Lille 1-0 respectively.
Both Bastia and Montpellier had players sent off in the second half but it was the home side who found the back of the net in the 48th minute via Floyd Ayite.
Cheick Diabate’s 51st-minute goal for Bordeaux was enough to secure the points at Matmut Atlantique – a win which lifts them to ninth.
On Friday, Hatem Ben Arfa struck two penalties in three minutes as Nice came from behind to complete a 2-1 victory over Angers and climb up to third in the table.
Angers, the competition’s surprise package of the season, took a first-half lead through Pierrick Capelle before Ben Arfa ended his 10-game goal drought with a pair of successful spot-kicks in the final 11 minutes.