Manchester United are a step closer to the Europa League final after beating Anderlecht 2-1 in extra-time at Old Trafford.
The Red Devils enjoyed plenty of possession but were taken to extra-time by the brave Belgians who came just short of forcing a penalty shootout.
Henrikh Mkhitaryan gave United the lead in the 10th minute only for Sofiane Hanni to level matters in the 32nd minute.
However, young striker Marcus Rashford sealed a berth in the semi-finals in the 107th minute with a clinical left-footed finish from inside the box.
United are joined in the last four by Celta Vigo, who beat Mat Ryan's Genk, Ajax and Olympique Lyon.
While the victory keeps open a possible path to next season's Champions League for Jose Mourinho's side, it came at a high price with defender Marcos Rojo and forward Zlatan Ibrahimovic both suffering possibly serious knee injuries.
Four-times European champions Ajax, leading 2-0 from the first leg, appeared to be on the way out as Schalke wiped out the deficit in just under an hour and then scored again early in extra-time.
But Ajax scored twice in the last 10 minutes of extra-time to bring it back to 3-2 and win 4-3 on aggregate.
Schalke's defeat, following Bayern Munich and Borussia Dortmund's elimination from the Champions League this week, meant that there were no German semi-finalists in either of the European competitions for the first time since 2004/05.
Turkish club Besiktas beat Lyon 2-1 to level their tie at 3-3 and then won on a sixteen kick penalty shoot-out.
A 1-all draw away to Racing Genk was enough to give Celta a 4-3 aggregate win.