Lisandro scored twice - but will miss the second leg through suspension
Lyon took a giant step towards their first Champions League semi-final with victory over French rivals Bordeaux.
Lisandro Lopez put the hosts ahead after a mistake by Michael Ciani, but Marouane Chamakh headed in a 14th-minute equaliser.
Lyon were ahead at half-time thanks to Michel Bastos's strike, which came after another defensive mistake.
And Lisandro's penalty gave Lyon a two-goal cushion after Matthieu Chalme was harshly penalised for handball.
Ligue 1 leaders Bordeaux came into the tie as slight favourites, having topped a Champions League group ahead of Bayern Munich and Juventus and won seven successive games in the competition, but the bedrock of that success was a miserly defence which conceded just three goals in eight games.
Lyon, however, needed only 10 minutes to breach the visitors' surprisingly shaky backline for the first time.
Miralem Pjanic's weak free-kick was easily blocked by the wall but the ball was hoofed back into the box where Ciani completely misjudged his clearance, with Mathieu Bodmer thumping the ball across goal for Lopez to divert home.
Four minutes later, Chamakh's fourth Champions League goal of the season drew the visitors level, the Moroccan striker heading home after excellent work by Yoann Gourcuff on the right.
In a thrilling first-half, both sides created chances at will.
A ball through the middle sent Cesar Delgado clear but the Argentine was denied by Bordeaux keeper Cedric Carrasso, while at the other end Hugo Lloris tipped over Yoan Gouffran's flick and Chamakh headed wide.
But it was another defensive error which handed Lyon the lead. The build-up play was excellent, but Benoit Tremoulinas's failure to head away Pjanic's cross proved crucial and Bastos slotted in at the far post.
Bordeaux emerged with renewed intent in the second-half and the brilliance of Lloris was all that kept Lyon in front, with the France keeper producing a miraculous save to keep out Chamakh's acrobatic volley.
As a thrilling game continued to ebb and flow, Jean Makoun squandered the chance to extend Lyon's lead when he shot too close to Carrasso, while at the other end, Wendel's thumping volley crashed back off the crossbar.
Lyon, though, made the second-half breakthrough in highly fortunate fashion.
Aly Cissokho's shot certainly hit Chalme's arm, but it hardly looked intentional as the defender was sliding across to block and looking in the opposite direction.
Nonetheless, referee Felix Brych pointed to the spot and Lisandro stepped up to send Carrasso the wrong way.
Lisandro's joy was shortlived, as a booking - which also looked harsh - ruled him out of the second leg minutes later.
But the Argentine striker will be hopeful his side can finish off the job in his absence when Lyon travel to Bordeaux on 7 April.
Bordeaux, fresh from defeat in the French League Cup at the weekend, at least saw Tremoulinas partially atone for his earlier error when he cleared off the line from Makoun late on, meaning Laurent Blanc's side, with the comfort of an away goal, will approach the second leg with a glimmer of hope.
Lyon coach Claude Puel: "Of course we're in a good position but it's still wide open. They gave us a hard time tonight and will do that again next week. Everything's still to play for.
"They equalised quickly and that opened up the match and we started the second half slowly.
"Bordeaux made us run and almost got an equaliser again but we started going forward, made some chances, got 3-1 up and had three or four chances to make it 4-1."
Bordeaux coach Laurent Blanc: "We had a bit of weakness at the back. When you look at the players in our defence, they are young players and they lack experience.
"The environment and the pressure affected them. For the return leg we will have to build on what we did tonight and defend better.
"Marc Planus and Alou Diarra are important players for Bordeaux and we missed their experience in defence today. But we can't dwell on that."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.