Manchester City again came unstuck against Lyon in the UEFA Champions League as a controversial 3-1 defeat saw Pep Guardiola miss out on a semi-final against his former club Bayern Munich.
Lyon won away to City in the 2018-19 group stage - also drawing at home - and they again had the tournament favourites' number in Lisbon on Saturday.
Maxwel Cornet scored in both prior meetings between the sides and was on target once more midway through the first half as City struggled to get to grips with the five-man defence named by Guardiola.
That formation was ditched before the hour mark and Kevin De Bruyne equalised, but substitute Moussa Dembele restored Lyon's lead following a contentious counter-attack with 11 minutes remaining and then added another after an Ederson error.
Raheem Sterling remarkably missed an open goal between Dembele's decisive strikes as City suffered further European misery in stunning fashion.
The flaws of City's change in system were laid bare with 24 minutes played.
Kyle Walker - operating at wing-back - kept Karl Toko Ekambi onside from a long pass forward, with Eric Garcia's last-gasp challenge merely knocking the ball into the path of Cornet for a fine first-time finish that stood following a VAR review.
Lyon goalkeeper Anthony Lopes endured a couple of nervous moments but blocked bravely from Ilkay Gundogan, before De Bruyne sought to drive City forward following half-time.
De Bruyne finally found his range with 21 minutes remaining, picking out the bottom-right corner after Sterling turned away from Jason Denayer and calmly found his team-mate.
Lopes had to be alert to a powerful drive from Gabriel Jesus, who later miscued when attempting to meet Sterling's cross on the volley, yet Lyon also attacked with renewed vigour.
The crucial second for the French team arrived via peculiar circumstances as City appealed in vain for a foul on Aymeric Laporte and offside against Toko Ekambi, who let the ball pass through his legs to the onside Dembele.
The striker squeezed a finish under Ederson and was on target once again with three minutes of normal time to play, pouncing on Ederson's spill from a Houssem Aouar shot just moments after Sterling somehow missed the target as Jesus crossed at the other end.
Walker headed wide in stoppage time as City kept fighting, but they once again came up short in Europe's elite club competition.
What does it mean? Semi-finals a Franco-German affair
There was plenty of debate heading into the Champions League quarter-finals over how important the teams' momentum would be amid varied schedules across Europe due to the coronavirus pandemic. It would appear a period of rest was best.
Ligue 1, whose season was abandoned, and the Bundesliga, which returned first and therefore finished first, have each supplied two semi-finalists, their sides displaying superior physical and mental energy.
Lyon were able to keep going against City and capitalise on woeful errors in a famous win.
Cornet the man again for Lyon
After three goals across two games against City last term, Cornet picked up where he left off with a wonderful finish as Ederson was left stranded following Garcia's tackle. Nominally a forward, Cornet is asked to work as a wing-back in this formation and carried out his defensive duties diligently, too, making one superb block as Sterling shaped to shoot just before half-time.
Pep overthinks winnable tie
Complacency might have been an issue as other big names tumbled out of the competition, but Guardiola appears to have the opposite problem. The City manager continues to meddle with his system for these big Champions League games to very little success.
City looked to match up to Lyon's formation but never looked as comfortable as opponents who are inferior on paper. An uneven defensive line let Toko Ekambi in for the opener, meaning Guardiola's men were chasing the game from that point.
A buoyant Lyon now face the daunting task of taking on Bayern, whose rampant form shows no sign of slowing heading into Wednesday's semi-final.