Lyon reached the Champions League semifinals for the first time despite losing 1-0 at Bordeaux on Wednesday.
Bordeaux striker Marouane Chamakh scored right on halftime to keep his team’s hopes of qualifying alive, but Lyon held on to win 3-2 on aggregate.
The Morocco international slid home a cross from Benoit Tremoulinas that was diverted by teammate Jaroslav Plasil.
But Bordeaux couldn’t score again to advance on away goals, with Lyon goalkeeper Hugo Lloris making a crucial save in the 87th minute, jumping to palm away a powerful header from Brazilian midfielder Geraldo Wendel.
Lyon will play Bayern Munich, which lost 3-2 to Manchester United on Wednesday but advanced on away goals.
Bordeaux coach Laurent Blanc took a gamble by starting center back Marc Planus in his first match since spraining his knee last month. Blanc made that move after two defensive blunders and a penalty gave Lyon a 3-1 win in the first leg.
Lyon was without suspended forward Lisandro Lopez and winger Sidney Govou and the injured Jean Makoun II.
Bordeaux missed Argentine midfielder Fernando Menegazzo, who fractured his cheekbone in the French league last weekend.
Lyon coach Claude Puel adopted a defensive strategy to contain Bordeaux’s attack, benching Bosnia playmaker Miralem Pjanic to play with three defensive midfielders at kickoff.
Lyon created the first two chances – a long-range free kick from Michel Bastos that sailed wide in the ninth minute and an off-target header from Bafetimbi Gomis in the 13th – but Bordeaux gradually took control of the match.
Fiver minutes later, Bordeaux playmaker Yoann Gourcuff beat Lloris to a free kick from Wendel only to head over the bar.
Another free kick from Wendel put Lyon under pressure in the 31st, but Chamakh had his shot from eight meters (yards) blocked by the defense.
Lyon had more trouble when Aly Cissokho shoved Wendel to the ground, earning a yellow card in the 34th. Cissokho fouled Wendel again five minutes later and was lucky not to be sent off.
Bordeaux stepped up the pressure with a half-volley from captain Alou Diarra that rattled the bar in the 44th off a pass from Chamakh, who found the net himself a minute later to rouse the home crowd.
Lyon nearly scored shortly after the break when Gomis outpaced the defense and dribbled past goalkeeper Cedric Carrasso, but Marc Planus rushed back to block the tame shot.
Bordeaux received a blow in the 70th, a thigh injury forcing Diarra to be replaced by Matthieu Chalme.
Lyon seemed to be on the verge of elimination in the 80th when an unmarked Ludovic Sane ran to the far post for a corner but he headed wide and Bordeaux never threatened the goal again.