Leaders Paris St-Germain suffered a second successive away defeat in Ligue 1 as Rennes claimed a deserved 1-0 victory.
Captain Hamari Traore scored the only goal midway through the second half with a low finish from inside the area after good work by Adrien Truffert.
Substitute Kylian Mbappe should have equalised when he raced through on goal but blazed wildly over the bar.
The defeat means PSG stay three points clear of second-placed Lens, who beat Auxerre 1-0 on Saturday.
It was a deserved victory for Rennes, who created the better chances and were defensively resilient as PSG pushed for an equaliser late on.
Christophe Galtier’s side, who lost away second-placed Lens on New Year’s Day, failed to muster a shot on target until the 81st minute when Juan Bernat’s volley was tipped over by Steve Mandanda.
Despite the defeat it was a memorable evening for teenager Warren Zaire-Emery, who became the youngest player to start a Ligue 1 game for PSG at the age of 16 years and 313 days.