Playing under heavy snowfall, Sloan Privat headed home a Rafael Dias corner kick in the 18th minute and Cedric Bakambu made it 2-0 five minutes before the interval.
Marseille's hopes of staging a comeback were shattered a minute into the second half when Jeremy Morel scored an own goal.
Jordan Ayew clawed a goal back for Marseille in the 55th minute with a powerful strike but the visitors were unable to find the net again despite Sochaux being reduced to 10 men after Joseph Lopy picked up a second yellow card in the 61st minute.
Marseille, who were unlucky to hit the woodwork three times on Sunday, stay third on 38 points from 20 games, three adrift of Lyon and one behind Paris St Germain. Sochaux climbed to 17th in the 20-clubs table on 19 points.
"We clearly could have done better tonight. They barely threatened us but we conceded again from set pieces," goalkeeper Steve Mandanda told French channel Canal+.
"If we want to stay in the title race, we have to win these kind of games. We have not managed to so far."
After labouring in the first half, Marseille created numerous chances in the second but were left frustrated when Nicolas Nkoulou and Lucas Mendes' headers hit the post.
Souleymane Diawara also hit the woodwork in the first half.
Sochaux held on to register their first league win since mid-November and climbed up to 17th with 19 points.
Dario Cvitanich scored his 11th and 12th goals of the season and created another to help Nice move up to fifth on 32 points with a 5-0 home hammering of Valenciennes.
The Argentine striker, signed in the off-season from Ajax Amsterdam for just 400,000 euros ($533,800), curled the ball in to break the deadlock on the stroke of halftime.
He struck again in the 79th minute and set up Didier Digard for the fifth after Renato Civelli had made it 2-0 and Valentin Eysseric, who signed a contract at the club this week after originally joining on loan, netted a splendid 20-metre strike for the third.
Nice have 32 points from 20 matches along with Girondins Bordeaux in fourth and sixth-placed Stade Rennes.
"With our striker in form, we can hope to take points in any game, at home and away," Nice midfielder Fabrice Abriel told French channel beIN Sport.
France reserve goalkeeper Mickael Landreau made a successful debut for Bastia in the 2-1 win at Stade Reims, who have not won any of their last 13 games in all competitions.
Ilan volleyed in a Jerome Rothen cross in the 21st minute to put the visitors ahead and Florian Thauvin doubled their lead three minutes into the second half.
Bastia are 13th on 25 points while Reims lie 16th with 19.