Guingamp have moved above Rennes in the Ligue 1 table with victory over them.
The game was very scrappy in the opening five minutes with neither side able to get control of the game, but out of nothing Romain Alessandrini hit the bar from a cutback by Ola Toivonen with Anders Agnes Konradsen shooting over moments later.
Guingamp started to get on top of the game and came close on 20 minutes. Mustapha Yatabare met a headed pass from Claudio Beauvue, but Benoit Costil managed to turn it behind for a corner.
With Guingamp still on top Rachid Alioui confidently struck an effort from outside the box following a corner, but his shot curled not too far wide of the post.
Then with six minutes of the first half remaining, the away side had the lead. Thibault Giresse was played in by a free kick from Beauvue and struck a fine finish from a narrow angle.
After the goal Guingamp defended well, which forced Rennes to resort to shots from distance. Both Paul-Georges Ntep and Kamil Grosicki came close with shots, but neither managed to hit the target.
Then late in the game Costil brought down Younousse Sankhare with Yatabare scoring the resulting penalty to make sure of the points.