Paris Saint-Germain lost 2-1 at home to nine-man Rennes but remain top of the Ligue 1 table after Saint-Etienne and Valenciennes both drew.
Saint-Etienne looked destined to leap above PSG when Max Gradel's brace put them 2-0 up at Evian, but the home side belied their position in the drop zone to salvage a 2-2 draw.
And with Valenciennes also drawing 1-1 with Montpellier, PSG clung on to top spot, although Marseille can still dethrone them when they take on Bordeaux on Sunday.
PSG fell behind to Romain Alessandrini's 13th-minute volley and after Nene equalised, Rennes had goalkeeper Benoit Costil sent off.
However, the visitors responded superbly, taking the lead again through Julien Feret (34) and holding on despite Jean Makoun also being dismissed.
It had looked for all the world as though St Etienne were going to make them pay too, with Gradel scoring in the ninth and 28th minutes.
But the strugglers hit back through Mohammed Raibu (48) and then stole a point through Aldo Angoula with 10 minutes left.
Valenciennes were also held, albeit against stronger opposition.
Defending champions Montpellier, labouring in mid-table, took an early lead through Gaetan Charbonnier in the 15th minute, but were pegged back by Gregory Pujol six minutes before the break.
Jamel Saihi was sent off for Montpellier 12 minutes into the second half.
At the bottom of the table, Sochaux gave themselves some breathing space as Samuel Bohours put through his own goal 10 minutes in to give them a 1-0 win at Ajaccio, while the bottom two of Troyes and Nancy shared six goals in a 3-3 thriller.
Granddi Ngoyi gave second-bottom Troyes a dream start with a 20th-minute opener, but the home dressing room was not a happy one at half-time as Nancy reeled off three goals to take control.
Sebastian Puygrenier got the first of them (32) and Yohan Mollo (33) put the visitors ahead. When Andre Luiz scored on the stroke of half-time, being off the bottom tonight was a distinct possibility.
But they had not banked on Benjamin Nivet grabbing a late brace for Troyes, the first coming nine minutes from the end and the second an 87th-minute penalty.
In the day's other game a brace from Larsen Toure and Eden Ben Basat's penalty saw Brest beat Bastia 3-0.
Toure got his first on the stroke of the interval and his second 12 minutes after it before Ben Basat rounded things off on the hour.