Lyon blinked first in the battle of two unbeaten sides as goals from Benoit Tremoulinas and Cheick Diabate gave Bordeaux victory in Ligue 1 tonight.
Remi Garde's men were left to rue a disallowed goal from Alexandre Lacazette as they strived to peg Bordeaux back following Tremoulinas' deflected opener.
But try as they might, Les Gones could not find a way past a determined Cedric Carrasso in the visiting goal, with Diabate confirming Les Girondins' ascent to fifth place in the league table.
Lyon were determined to put the visitors under the cosh from the first whistle, Clement Grenier blasting over the crossbar before Bafetimbi Gomis flirted with the idea of scoring in the ninth minute.
After the early rough and tumble, the game settled into a steady rhythm and it was not until the 27th minute that Les Gones threatened again. The skilful Lisandro Lopez shirked the attentions of Henrique but was unable to produce an accurate finish.
For all Lyon's early promise, Carrasso did not have a feel of the ball until Grenier seized on Jaroslav Plasil's poor clearance to fizz a low strike against the Bordeaux stopper.
Plasil was eager to make amends for his first-half blunder as the game resumed but his cross to Diabate resulted in a confident smother from Remy Vercoutre.
The dangerous Lyon re-emerged in the 57th minute, Lopez and Gomis combining to feed Grenier but Carrasso repelled his thunderous drive to safety.
The hosts would come to regret their profligacy as Bordeaux took the lead against the run of play in the 65th minute.
A speculative effort from Tremoulinas took a sizeable deflection off Dejan Lovren, wrongfooting Vercoutre before nestling in the back of the net.
Lyon thought they had scored a quick equaliser when Lacazette peeled away to celebrate a confident header from a corner.
But much to the home fans' dismay, the referee decided that Grenier's delivery had gone out of play as it swung into the box.
With an eight-match unbeaten record now in serious jeopardy, Yassine Benzia spurned a gilt-edged chance to unsettle Bordeaux.
Lopez craftily released the teenage striker but he could only pull his shot wide with Carrasso to beat.
But the writing was on the wall as Diabate capitalised on a defensive mix-up between Mouhamadou Dabo and Lovren to nod over Vercoutre in the 81st minute.
Substitute Jimmy Briand might have reduced the deficit with four minutes remaining but brushed the wrong side of a post as Carrasso stood rooted to the spot.