Lyon came into Sunday's (AEDT) match at Stade Chaban-Delmas with a two-point lead at the top of the table but now trail by three after Bordeaux landed a bonus-point triumph.
The match was hanging in the balance with the hosts 20-19 ahead going into the closing stages, but Seta Tamanivalu and Santiago Cordero scored pivotal converted tries in quick succession.
Earlier in the contest, Fiji star Semi Radradra had emphatically bounced back from a spell in the sin-bin by scoring a double for Bordeaux as it recovered from an early deficit, Lyon having crossed for the first try of the match.
But while two penalties apiece from Charlie Ngatai and Jonathan Wisniewski kept the visitors within striking distance in a match that was 10-10 at the interval, Mickael Ivaldi's 17th-minute effort proved their only try.
It was a welcome return to form for Christophe Urios' Bordeaux side after its loss to defending champion Toulouse last time out.
Elsewhere, La Rochelle failed to keep hold of third place as it fell to a last-gasp 21-20 loss away to struggling Stade Francais.
Facundo Bosch appeared to have given the visitors a come-from-behind victory, but Stade Francais's Nicolas Sanchez crossed in the fourth minute of additional time after Jules Plisson had been sent to the sin-bin.
La Rochelle drops below Toulon, whose wing Daniel Ikpefan dotted down twice in a comfortable 34-17 home win over Brive.
Clermont Auvergne is sixth after it stormed back with 10 points in the final seven minutes to grab a 23-20 win at Pau.
In another close encounter, Montpellier held off a late Bayonne fightback to record a 31-29 home victory, Nemani Nadolo scoring a hat-trick.