Marseille was under pressure after losing to Montpellier last weekend and to Greek side Olympiakos in the Champions League on Wednesday.
But the hosts defied the odds by showing more commitment than PSG.
France forward Loic Remy notched his seventh goal this season with a header to put Marseille ahead in the ninth minute. Midfielder Morgan Amalfitano doubled the lead with a diagonal strike in the 65th before Ghana winger Andre Ayew added a third goal in the 83rd.
PSG fell to second place, three points behind Montpellier, while Marseille climbed to ninth.
Marseille coach Didier Deschamps beefed up his midfield by starting Alou Diarra and Stephane M’Bia to contain PSG’s attack.
PSG dominated ball possession in the opening minutes but Marseille converted its first scoring chance against the run of play when Remy escaped Diego Lugano’s marking and outjumped Christophe Jallet to head a cross from Cesar Azpilicueta into the bottom corner.
Marseille lost its greatest offensive asset when Remy sprained his ankle and was replaced by Jordan Ayew in the 32nd.
PSG nearly equalized in the 35th but Mohamed Sissoko’s half-volley from 25 yards hit the post before bouncing off goalkeeper Steve Mandanda’s arm.
Marseille pushed hard after halftime to add a second goal. Azpilicueta charged down the right flank in the 47th to pull the ball back for playmaker Lucho Gonzalez but Lugano cleared the danger with a sliding tackle.
The tension on the pitch reached a high in the 56th when Jordan Ayew and PSG defender Mamadou Sakho clashed and received yellow cards.
PSG coach Antoine Kombouare replaced the ineffective Kevin Gameiro and Javier Pastore with Mevlut Erding and Mathieu Bodmer in the 59th.
But those moves did not prevent Amalfitano from winning the ball in midfield and finding Jordan Ayew. The Ghana forward played the ball back to Amalfitano who buried it past goalkeeper Salvatore Sirigu.
Amalfitano set up the third goal with a cross for Andre Ayew, whose downward header deflected off PSG fullback Ceara to bounce over the line.
Elsewhere Sunday, Lyon kept pace in the race for a European spot with a comprehensive 3-0 win over Auxerre.
Argentine striker Lisandro Lopez headed home a cross from Michel Bastos in the 20th minute before beating the offside trap in the 69th to cut inside Cedric Hengbart and slip the ball past goalkeeper Olivier Sorin.
Bastos sealed the win with a chip in the 88th.
“It was important to win,” Lopez told the club’s website. “This result does good to the whole squad and makes up for the three points lost against Rennes (last weekend).”
Lyon remained in fifth place, seven points behind Montpellier, which beat Sochaux 3-1 Saturday with a hat trick from Olivier Giroud to take the lead.
Meanwhile, midfielder Arnold Mvuemba converted a penalty in the 63rd to give Lorient a 1-0 win over Nice after Larrys Mabiala had fouled Gilles Sunu.
On Saturday, it was: Bordeaux 2, Caen 0; Nancy 1, Dijon 2; Rennes 3, Evian 2; Saint-Etienne 3, Ajaccio 1; Toulouse 2, Valenciennes 0; and Lille 2, Brest 0.