The midtable visitors did not register a shot on target during the entire 90 minutes but frustrated Saint-Etienne, who have drawn their last three games.
© Getty Images
The hosts, who were fourth in Ligue 1 prior to kickoff, improved after the break in every area apart from their finishing as Mevlut Erding struck tamely at Rennes keeper Benoit Costil from close range.
Benoit Tremoulinas's cross was directed perfectly at Hamouma, who could only head into Costil's arms.
There was one more chance for the hosts to snatch three points late on, but Moustapha Bayal Sall nodded wide after Tremoulinas had again whipped the ball into an excellent area.
The result leaves Saint-Etienne six points behind third-placed Lyon, while Rennes remain 13th in the table.