Basel produced a stunning comeback from a goal down to defeat Red Bull Salzburg 2-1 and reach the UEFA Europa League quarter-finals.
In a bad tempered game that saw the players leave the pitch for 13 minutes in the first half due to crowd unrest and eventually finished with both sides down to 10 men, Basel responded superbly to Marek Suchy's ninth-minute dismissal for a crude tackle.
Jonatan Soriano put Salzburg ahead before Marco Streller and Gaston Sauro scored twice in the space of 10 second-half minutes to turn the last 16-tie on its head as Basel wrapped up a 2-1 aggregate win.
On a night of high drama in Austria on Thursday, Basel fans - frustrated at falling behind to Soriano's goal and Suchy's red card - threw objects when Salzburg's players tried to take corners, an incident that led to them leaving the pitch until things calmed down.
Controversy was never far away after the restart and Basel's Arlind Ajeti was lucky not to see red for an apparent headbutt. And he made the most of his good fortune by setting up Sauro to head in a 60th-minute winner to kill the game off.
Salzburg's misery was compounded four minutes from time when Alan received a second yellow and was dismissed.
The first-leg stalemate ended Salzburg's 10-game European winning run dating back to the start of this season's play-offs, but the home side started positively with both Sadio Mane and Kevin Kampl firing wide.
And Basel's task became even tougher after when Suchy was shown a straight red card early on after catching Alan from behind.
Roger Schmidt's side went about their task with added zest following Suchy's dismissal and Kampl should have ended a flowing move with a goal only to completely miss Mane's low cross with the net at his mercy.
And they made their numerical advantage count when Kampl crossed for Soriano to volley in from close range.
Mane should have doubled the lead but Yann Sommer tipped his effort over.
Frustration boiled over for Basel's fans as they threw objects at the Salzburg players while they were taking corners. And, despite the pleas of Streller, the situation did not improve and the home side walked off in protest.
After 13 minutes, play resumed and Philipp Degen saw an effort deflected onto the roof of the net.
Basel regrouped at half-time and Streller claimed a vital away goal with a superb back-post header.
Just after gaining the advantage in the tie, Basel were lucky not to be punished for a moment of madness when Ajeti seemed to headbutt Alan, but got away with a booking.
Lucky to still be on the pitch, Ajeti grabbed his reprieve with both hands and played a pivotal part in Basel taking the lead when he nodded a deep corner back across goal for Sauro to head in.