Jimmy Briand scored an 86th-minute winner for the hosts as they claimed their third consecutive victory in this season's competition.
In a fairly even but uneventful first half, both sides had chances to break the deadlock.
Bilbao firstly forced a good save out of Lyon keeper Remi Vercoutre courtesy of Andoni Iraola's shot, while the Ligue 1 outfit twice went close through former Fulham and Tottenham Hotspur midfielder Steed Malbranque.
Shortly after the interval, Lisandro Lopez gave Lyon the lead with a powerful header from Anthony Reveillere's cross.
The same player was on hand to pull Bilbao level with 12 minutes to play, but Lyon responded positively after conceding.
Batefemis Gomis missed a pair of good chances before Briand snatched Lyon all three points with a powerful close-range strike four minutes from the end.