When Daniel Caligiuri headed Schalke’s third in the first period of extra-time, there seemed no way back for the visitors.
Yet Ajax never abandoned their slick passing game and grabbed an away goal when Viergever controlled a cross from Kenny Tete and managed to fire into the roof of the net with nine minutes left.
Schalke lost their composure, were left wide open and Younes took advantage when he cut inside to score another for Ajax.
“It’s hard to explain what happened at the end. I’m speechless really,” said Caligiuri.
Brazilian Anderson Talisca scored both goals for Besiktas as they beat Lyon 2-1 to level their tie at 3-3.
Alexandre Lacazette replied with a superbly-taken goal for the French side, collecting a pass and lifting it over goalkeeper Fabri for his 31st of the season in all competitions.
The first six penalties in the shootout were all converted before Dusko Tosic saw Besiktas’ seventh attempt saved by Anthony Lopes, only for Christophe Jalle to send Lyon’s next effort over the bar.
Lopes then saved another, this time from Matej Mitrovic, but there was no second let off for Besiktas as Maxime Gonalons converted Lyon’s eighth kick.
United, the last remaining English side in Europe, took the lead in the 10th minute through Henrikh Mkhitaryan but Sofiane Hanni brought Anderlecht, winners of both the old European Cup Winners’ Cup and the UEFA Cup, back level in the 32nd minute.
After Zlatan Ibrahimovic, who later went off with a potentially serious knee injury, wasted two great chances in the final stages of normal time, the contest went into extra time and Rashford settled the tie with a fine finish early in the second period.
Pione Sisto scored a spectacular goal to put Celta ahead against Genk as he won the ball in midfield, burst forward and unleashed an unstoppable effort into the roof of the net.
Leandro Trossard replied four minutes later for the Belgian hosts but they were unable to find a winner.