Guingamp 1 Paris Saint-Germain 0: Champions lose unbeaten league record
Laurent Blanc's PSG had not been beaten in France's top flight since a 2-1 reverse at home to Rennes in May.
However, Jeremy Pied's close-range header in the 11th minute was enough for Jocelyn Gourvennec's men to secure an unlikely three points at the Stade du Roudourou on Sunday.
PSG, who have now suffered back-to-back losses after Tuesday's 3-1 reverse to Barcelona in the UEFA Champions League, were well off the pace, but it could have been a different story if Edinson Cavani's early lob had not hit the crossbar.
The visitors enjoyed a near monopoly of possession after the break and had claims for a penalty turned away for what they thought was a handball from Dorian Leveque before Zlatan Ibrahimovic forced Jonas Lossl into a stunning late save, but they were unable to find an equaliser.
Defeat for PSG means league leaders Marseille have the chance to open up a four-point gap at the top of the table when they visit Monaco later on Sunday, while Guingamp's third Ligue 1 win in a row moves them four points clear of the relegation zone.
PSG set out their stall early and Cavani was unlucky to see his excellent lobbed volley from the edge of the area strike the woodwork in just the second minute.
However, the visitors were guilty of slack defending as Guingamp took the lead nine minutes later.
Thibault Giresse's free-kick was knocked down in the area by Younousse Sankhare and Pied made a late run into the box to nod past Salvatore Sirigu.
Guingamp were doing well to quell PSG's attacking threat and they almost caught the away side out again when Claudio Beauvue - who came into the game with five goals in his last three matches - turned David Luiz in the area, but his shot went wide of the right-hand post.
Ibrahimovic did have the ball in the back of the net in the 35th minute for PSG, but the whistle had long since gone for offside.
PSG sought a quick start to the second half and Lossl showed good hands to keep out Ibrahimovic's shot from the left of the area.
Guingamp then saw a great chance to extend their lead go begging in the 48th minute when Sirigu made a superb one-handed stop to deny Beauvue, who had broken clear one-on-one.
PSG survived that scare and Ezequiel Lavezzi protested furiously for a penalty just after the hour mark when Leveque seemingly handled during a scrap for possession in the hosts' penalty area, but referee Antony Gautier was uninterested and booked Lavezzi for his arguments.
PSG were camped around the Guingamp penalty area in search of a late equaliser and the hosts had Lossl to thank for pulling off an incredible point-blank save from Ibrahimovic in the 86th minute, as they held on for a famous win.