Having already seen off Lyon, Hubert Fournier's men silenced the home crowd with a late Prince Oniangue header after Marseille's Florian Thauvin and Andre-Pierre Gignac had cancelled out a first-half strike from Mads Albaek and a Saber Khelifa own goal.
An unlikely three points for Reims meant a fourth defeat of the season for Elie Baup's Marseille, who have drifted outside of the European places in Ligue 1, languishing in sixth and bringing out the club president to defend Baup in the post-match press conference.
Guingamp took advantage of that defeat to leapfrog Marseille into fifth place as they scored twice late on to beat struggling Ajaccio 2-1.
The visitors, in the bottom three, took the lead through Benjamin Andre late in the first half, but Claudio Beauvue equalised in the 86th minute before Moustapha Diallo struck to make it three wins in a row.
Nice might also have moved above OM, but they suffered a 1-0 loss away to the ten men of Bastia.
Sebastien Squillaci's solitary strike was enough to seal all three points for Frederic Hantz's men, despite them playing more than half an hour with 10 men after the 58th-minute dismissal of Gianni Bruno. Nice were also reduced to 10 four minutes from time with Mahamane Traore booked for a second time.
Rennes ran riot on the road as they thrased Toulouse 5-0 to end a four-match losing run in spectacular fashion.
Goals from Romain Alessandrini, Tiemoue Bakayoko and Foued Kadir saw Rennes 3-0 up a the break and a second-half brace from Nelson Oliveira completed the rout.
The result sees Rennes leapfrog their opponents in the Ligue 1 table and move up to eighth.
Rock-bottom Valenciennes went down 1-0 at home to Evian thanks to Moudou Sougou's 82nd-minute winner, while Lorient beat fellow strugglers Sochaux 2-1 to ease away from trouble, taking control with goals in either half from Vincent Aboubakar and Yann Jouffre before Cedric Bakambu's late reply for the visitors.