Nelson Oliveira was sent off for the hosts after the break at the Stade Municipal du Roudourou.
The away side made the better start to the game and had a good chance to find an opener in the eighth minute, but Adrien Hunou was unable to convert from Oliveira's pass into the box.
Oliveira had a great opportunity to put Rennes in front just eight minute before the break, but he somehow put his effort wide of the left post from 10 yards out.
However, it was Guingamp who found the opener just three minutes into second half when Sorbon headed an effort into the ground that found its way into the back of the net from a corner.
Things went from bad to worse for Rennes with 24 minutes to go when Oliveira was given his marching orders for a challenge from behind on Christophe Mandanne.
Guingamp made sure of the win five minutes later when Yatabare bravely got to the ball ahead of his marker to prod home the rebound.
Guingamp jump to 13th in Ligue 1, while Rennes drop to 10th.