Lyon was ready to fight back with a tenacious second-leg performance in France, But Ajax were held on and reach the Europa League final – their first European final since 1996.
The Dutch giants scored first through Kasper Dolberg’s finish, to move 5-1 ahead on aggregate.
But Alexandre Lacazette’s fought back with two goals of his own before half-time.
Rachid Ghezzal’s 81st-minute header gave Lyon a spark of hope.
Adding to Ajax’s worries was Nick Viergever’s dismissal, ensure their handicap.
Lyon was not able to capitalize on this and wasted 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.”
Lacazette (45′ minutes pen, 45’+1 minutes)
Ghezzal (81′ minutes)
Dolberg (27′ minutes)
Viergever (Dismissed at 84′ minutes)