Wahbi Khazri struck after five minutes and James Lea Siliki added another in the dying seconds to give the Brittany side their first win after three straight defeats in all competitions.
The result left Lyon in fourth place on 48 points, five points adrift of second-placed Monaco who thrashed Angers 4-0 away on Saturday.
Olympique de Marseille, held 2-2 at St Etienne on Friday, are third on 52 points, 13 behind runaway leaders Paris St Germain who snatched a 1-0 win at Toulouse on Saturday thanks to Neymar.
Ballon d'Or
Rivaldo backs future ‘star of Real Madrid’ for Ballon d’Or award next year
Rennes' Khazri made the most of a defensive blunder by Marcelo and beat Anthony Lopes from close range to put the visitors ahead on six minutes.

Rennes' French midfielder Wahib Khazri is congratuled by teammates after scoring a goal during the French L1 football match between Olympique Lyonnais and Stade Rennais FC, on February 11, 2018

Image credit: Getty Images

Lyon dominated possession but Nabil Fekir was being closely monitored by the opposition defence.
The French international forward came close to levelling, however, with 15 minutes from time when his long-range effort shaved the post.
But Rennes doubled their tally three minutes into stoppage time when Lea Siliki was alert to finish after Lopes had parried his first shot back into his path.
Chelsea face battle to land Dembele - Paper Round
PSG, Newcastle or Brazil? Where will 'risky bet' Neymar play next season
22/06/2022 AT 11:20