Manchester City’s Champions League dream is over for another year after a late double from Moussa Dembele sent Lyon to the semi-finals.
Lyon, who finished seventh in Ligue 1, will face Bayern Munich on Wednesday.
They led through Maxwel Cornet’s 20-yard curling effort but Kevin de Bruyne levelled for City with a smart finish.
Dembele chased on to a long ball to put Lyon ahead, and then the substitute tapped home a third goal to clinch the win after an Ederson error.
Raheem Sterling missed a glorious chance to force extra time, just before Dembele’s second, when he blazed over an empty net from six yards.