Ajax Amsterdam weathered an Olympique Lyonnais storm to reach the Europa League final 5-4 on aggregate after suffering a 3-1 away defeat in a thrilling clash on Thursday.

They will face Manchester United in the showpiece match in Stockholm on May 24 after the Premier League side beat Celta Vigo 2-1 on aggregate after a 1-1 draw at Old Trafford.

Kasper Dolberg opened the scoring for Ajax in the semi-final second leg but Alexandre Lacazette's double just before halftime put Lyon ahead on the night and substitute Rachid Ghezzal added another goal for the hosts late on.

But Ajax, who finished with 10 men after Nick Viergever was sent off in the finale, held firm to reach their first European final since 1996 when they lost in the Champions League.

"It hurts, because we played an almost perfect game but that first goal cost us dearly," said Lyon defender Maxwell Cornet.

The Lyon defence was often outpaced in a lively start to the game and midway through the first half, Ajax were rewarded.

Dolberg put the visitors ahead after 27 minutes, chipping the ball past Anthony Lopes after being set up by Younes, who benefited from some poor defending by Rafael and Nicolas Nkoulou.

Lacazette was brought down in the area just before the break and he converted the resulting penalty to give Lyon a lifeline in the 45th minute.

One minute later, Lacazette gave the home side the advantage on the night when he latched onto a pass across goal from Nabel Fekir.

Ajax were on the back foot early in the second half, but Lyon lacked accuracy, until Ghezzal's 81st-minute deflected header gave the Parc OL hope.

There was more hope when Viergever was handed a second yellow card in the 84th minute.

Cornet's strike in the 87th then whizzed past the post as Lyon increased the pressure, but the visitors held out until the final whistle.