Match ends, Lyon 3, Ajax 1.
Ajax held on to resist a tenacious second-leg fightback by Lyon in France and reach the Europa League final - their first European final since 1996.
The Dutch side scored first through Kasper Dolberg's crafty finish to move 5-1 ahead on aggregate.
But Alexandre Lacazette's two goals before half-time and Rachid Ghezzal's 81st-minute header gave Lyon hope.
And Nick Viergever's dismissal ensured Ajax were on the back foot - with Lyon wasting several late chances.
Ajax play their final league match on Sunday and will then have 12 days to prepare for the final, which will be against Manchester United in Stockholm on 24 May.
And coach Peter Bosz claimed Ajax's return to a European final was "a victory for football".
He added: "The guys were great with the tension, had chances and scored with one.
"There was nothing going on until the last minute of the first half, when everything went wrong.
"Lyon started to believe in it, the crowd were behind them and then you know it is difficult.
"At half-time I said 'Do not panic.' But in the end, especially after the red card for Nick Viergever, we had to survive.
"We have done that and the final result is beautiful. Call it a victory for football."
By contrast, Lyon coach Bruno Genesio felt the result was a "cruel disappointment".
He said: "The players played a great match, we really rushed Ajax. Unfortunately it was not enough."
Lacazette said: "We weren't far away from qualifying. We weren't clinical enough in front of goal and not effective enough defensively.
"It could have been different if I'd been fit to start the first leg."
Line-ups
Lyon
Formation 4-2-3-1
- 1Lopes
- 20da Silva
- 3NkoulouBooked at 61mins
- 5DiakhabyBooked at 49mins
- 15MorelBooked at 18minsSubstituted forRybusat 74'minutes
- 8TolissoBooked at 19mins
- 21Gonalons
- 27Cornet
- 18FekirBooked at 61mins
- 28ValbuenaSubstituted forGhezzalat 77'minutes
- 10Lacazette
Substitutes
- 11Ghezzal
- 12Ferri
- 13Jallet
- 14Darder
- 29Tousart
- 30Gorgelin
- 31Rybus
Ajax
Formation 4-3-3
- 24Onana
- 3VeltmanBooked at 49minsSubstituted forTeteat 65'minutes
- 5D Sánchez
- 36de Ligt
- 26ViergeverBooked at 84mins
- 10KlaassenBooked at 50mins
- 20SchöneSubstituted forvan de Beekat 59'minutes
- 22Ziyech
- 9Traoré
- 25Dolberg
- 11YounesSubstituted forKluivertat 82'minutes
Substitutes
- 2Tete
- 4Riedewald
- 16Westermann
- 30van de Beek
- 33Boer
- 45Kluivert
- 77Neres Campos
- Referee:
- Szymon Marciniak
- Attendance:
- 53,810
Match Stats
- Possession
- Home57%
- Away43%
- Shots
- Home23
- Away17
- Shots on Target
- Home8
- Away3
- Corners
- Home3
- Away5
- Fouls
- Home17
- Away20
Live Text
Post update
Full Time
Second Half ends, Lyon 3, Ajax 1.
Post update
Foul by Maxwel Cornet (Lyon).
Post update
Davy Klaassen (Ajax) wins a free kick in the defensive half.
Post update
Attempt blocked. Rachid Ghezzal (Lyon) left footed shot from the right side of the box is blocked. Assisted by Nicolas Nkoulou.
Post update
Nabil Fekir (Lyon) wins a free kick in the defensive half.
Post update
Foul by Bertrand Traoré (Ajax).
Post update
Attempt missed. Maxwel Cornet (Lyon) left footed shot from the left side of the box is close, but misses to the right. Assisted by Rachid Ghezzal with a cross.
Post update
Corner, Lyon. Conceded by Kenny Tete.
Post update
Attempt missed. Alexandre Lacazette (Lyon) right footed shot from the centre of the box is too high. Assisted by Rafael with a cross.
Post update
Attempt blocked. Rachid Ghezzal (Lyon) left footed shot from outside the box is blocked. Assisted by Corentin Tolisso.
Post update
Attempt missed. Nabil Fekir (Lyon) left footed shot from outside the box is high and wide to the left from a direct free kick.
Dismissal
Second yellow card to Nick Viergever (Ajax) for a bad foul.
Post update
Nabil Fekir (Lyon) wins a free kick in the attacking half.
Post update
Foul by Nick Viergever (Ajax).
Substitution
Substitution, Ajax. Justin Kluivert replaces Amin Younes.
Goal!
Goal! Lyon 3, Ajax 1. Rachid Ghezzal (Lyon) header from the centre of the box to the centre of the goal. Assisted by Maciej Rybus with a cross.
Post update
Attempt missed. Bertrand Traoré (Ajax) left footed shot from the left side of the box is just a bit too high. Assisted by Hakim Ziyech.
Post update
Delay over. They are ready to continue.
Post update
Delay in match Mouctar Diakhaby (Lyon) because of an injury.