Mauricio Pochettino’s side entered the match on the back of a Champions League win over Manchester City during the week, but this result saw the French giants dealt a sobering reality check.
The hosts started strongly, but it wasn’t long until PSG took a grip of the contest,
with both Kylian Mbappe and Neymar spurning glorious opportunities to find the net.
Before Lionel Messi struck the crossbar with a freekick.
However, Rennes took the lead against the run of play on the stroke of half time.
When Gaetan Laborde drifted in at the back post to finish from a Kamaldeen Sulemana cross into the box.
Rennes scored a second on the other side of half time with Flavien Tait finishing after good work by Laborde on the left side.
A lengthy VAR check raised doubts over a possible offside in the build-up, but the goal stood.
PSG looked to have pulled one back after Mbappe slid a neat finish inside the far post,
but VAR was used to spot that the French forward had been in an offside position in the build-up.
Ander Herrera, Mauro Icardi and Georginio Wijnaldum were all introduced off the bench,
to try and turn the match around in PSG’s favour, but there was to be no comeback as Rennes cruised to victory.
Rennes – Gomis (8) Traore (8) Omari (6) Aguerd (6) Meling (7) Bourigeaud (6) Martin (7) Tait (7) Sulemana (9) Laborde (8) Terrier (6).
Subs – Guirassy (5) Santamaria (5) Assignon (6) Ugochukwa (4).
PSG – Donnarumma (5) Hakimi (4) Marquinhos (5) Kimpembe (6) Mendes (5) Verratti (4) Gueye (5) Di Maria (4) Messi (6) Neymar (3) Mbappe (4).
Subs – Herrera (4) Icardi (3) Wijnaldum (4).