The result at Stade Armand Cesari moves the home side above the visitors in the French top tier.
© Getty Images
Bastia got off to a great start when Bruno held off his marker in the penalty area before poking the ball into the corner to put the hosts ahead in the eighth minute.
Rennes had several chances to find an equaliser with the two best opportunities coming just before half time.
Bastia nearly doubled their lead on the hour mark when Sebastien Squillaci nodded across the six-yard area to Romaric, but his header back across the face of goal was brilliantly saved in the top corner by Benoit Costil.
The win moves Bastia into the top half of Ligue 1 to ninth, leapfrogging Rennes, who are 10th.