Rock-bottom Ajaccio have won just one league game all season but shocked the reigning champions as Eduardo fired them into a sixth-minute lead.
They continued to frustrate PSG but Laurent Blanc's men levelled five minutes before the break through Ezequiel Lavezzi and Blaise Matuidi bagged the winner with 16 minutes to play.
Second-half goals from Clement Grenier and Yoann Gourcuff helped Lyon to a 2-0 win over struggling Sochaux.
It was as regulation a win as the home side could have hoped for, with relegation-haunted Sochaux never looking like the side which beat Rennes last time out.
Toulouse claimed bragging rights in the south east with a 1-0 win away to derby rivals Bordeaux after each team had a man sent off in the first half.
Uros Spajic of Toulouse and Maxime Poundje of Bordeaux both got their marching orders, the latter for conceding a penalty which Wissam Ben Yedder saw saved by Cedric Carrasso.
Toulouse's Denmark forward Martin Braithwaite scored the winning goal eight minutes after half-time.
Valenciennes survived a late fightback to claim a 3-2 win over Bastia and secure back-to-back Ligue 1 victories for the first time this season.
Mathieu Dossevi scored twice in the first half to put the strugglers in control and when Abdul Waris grabbed a third it looked as if it was all over.
Romaric and Ilan netted for the visitors to set up a tense finish as VA held on.
Rennes and Nice both missed penalties as their Ligue 1 clash ended goalless, while the match between Guingamp and St Etienne also finished 0-0.