Manchester United and Ajax will contest the Europa League final having had plenty of scares along the way.
Here, we highlight each club's route to the showpiece in Stockholm on Wednesday, May 24.
United hardly had the greatest of starts by losing 1-0 away to Feyenoord but a 4-0 win at Old Trafford against the Dutch side all-but sealed second place in Group A with a game to go.
Ajax had few problems in topping Group G as they went unbeaten against Celta Vigo, Standard Liege and Panathinaikos. The highlight was a 3-2 home victory over eventual semi-finalists Celta Vigo in November.
Jose Mourinho's side made light work of St Etienne in the first knockout stage in a tie that will be remembered more for the reunion of the Pogba brothers. Paul got the better of Florentin as United ran out 4-0 winners on aggregate.
After a goalless draw in Poland, Ajax welcomed Legia Warsaw back to Amsterdam and edged through thanks to a second-half goal from Nick Viergever which sealed a nervy 1-0 aggregate victory.
A trip to Russia was Mourinho's next assignment and a 1-1 draw away to FC Rostov gave United a crucial away goal - scored by Henrikh Mkhitaryan. Juan Mata scored the only goal in the return leg to secure a narrow 1-0 win in Manchester.
FC Copenhagen condemned Ajax to their first Europa League defeat of the campaign but Kasper Dolberg's away goal in the 2-1 loss gave them plenty of hope. The 19-year-old scored again in a 2-0 victory at the Amsterdam Arena to book a place in the last eight.
United were held to a 1-1 draw by Anderlecht in Belgium but were not made to rue their wasted chances after a 2-1 extra-time win at Old Trafford. Mkhitaryan scored in both legs but Marcus Rashford was the hero with his 107th-minute goal in Manchester.
Davy Klaassen's double seemingly put Ajax in command with a 2-0 first-leg victory but Schalke hit back in Germany to force extra time in the second leg. Daniel Caligiuri put Schalke in front after 101 minutes yet goals from Viergever and Amin Younes sealed a dramatic 4-3 aggregate triumph.
Rashford struck again with a fantastic free-kick as United ran out 1-0 victors in Spain against Celta Vigo. Marouane Fellaini's header put the Red Devils in control at Old Trafford before Vigo's Facundo Roncaglia scored to set up a tense finish. United held on to win 2-1 on aggregate.
Ajax blew Lyon away in the first leg with on-loan Chelsea forward Bertrand Traore scoring twice in a 4-1 victory in Holland. Dolberg's opener in France gave Ajax an unassailable lead and they held on to secure a place in the final despite a 3-1 second-leg defeat.