Chances were scarce in the opening 20 minutes, but Frederick Guilbert had a chance to open the scoring when he connected with a free kick, only to slice the ball well high of the Saint-Etienne goal.
The home side started to see more of the ball as half time approached, resulting in Jean-Christophe Bahebeck heading just wide from an Ismael Diamande delivery, before nodding the ball too high in stoppage time.
Bordeaux were back on the attack early in the second half as Guilbert and Cheick Diabate both provided promising-looking crosses, but there was no-one in the middle to connect with them.
Despite Bordeaux's bright start to the second half, it was the hosts who broke the deadlock just before the hour mark as Fabien Lemoine played a through-ball for Romain Hamouma, leaving him to drive the ball in from the edge of the box, picking out the bottom right corner.
Diabate almost got the visitors back on level terms moments later as he met a cross with a powerful header, but the crossbar kept his finish out, before hitting the woodwork for a second time a couple of minutes later with a half-volley from the edge of the box.
Bordeaux continued to push for an equaliser, as Poko tried to head the ball in late on, only to be denied by Ruffier, while Saivet was unable to make the most of a corner.
However, he made amends in injury time when the visitors won a free kick, drilling the ball in from 30 yards out to ensure that the sides finished level, each picking up their first point of the campaign.