Ludovic Sane's opener was cancelled out by Esmael Goncalves but, with the fixture heading towards a stalemate, the Brazilian popped up to slam home the decider and secure a first victory for Les Girondins.
The three points move them off the bottom of the table with winless Apoel taking their place.
The fans at Stade Chaban-Delmas witnessed a cagey opening 15 minutes but home nerves were eventually settled with a shot from Maxime Poundje which flew wide of the right post.
And it was Bordeaux who struck first after 24 minutes thanks to Sane, who rose to meet a corner from Gregory Sertic and head home from close range.
Ludovic Obraniak then threatened a second for the Ligue 1 club but visiting goalkeeper Rafael Urko was quick off his line to clear the danger.
Bordeaux goalkeeper Cedric Carasso was also made to earn his money at the other end, getting his palms to a testing header from Franco Vinicius, before another save from Urko prevented Les Girondins from extending their lead, with Obraniak thwarted before Henrique headed the rebound over.
And Apoel capitalised on the stroke of half-time with Efstathios Aloneftis pumping in a cross which was stabbed home from six yards by Goncalves.
Carasso kept the scores level after 57 minutes when he turned away another Goncalves strike with his feet, while Urko also impressed at the other end in tipping Obraniak's effort round the post.
However, luck was against Apoel in the 63rd minute as Aloneftis smacked a post with his 18-yard volley.
It looked like time would run out for both teams but the deadlock was finally broken a minute from time by Henrique, who got on the end of a free-kick from Diego Rolan to smash the winning goal high into the centre of the net.