The match had to be halted due to objects being thrown, at which point the hosts were leading, but the visitors fought back to win with 10 men in a topsy-turvy clash.
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 a man, 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 playoffs, but the home side started positively with both Sadio Mane and Kevin Kampl firing wide.
And Basel's task became even tougher after eight minutes when Suchy was shown a straight red card after catching Alan late from behind.
Roger Schmidt's side went about its 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 it made the 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 on to the roof of the net.
Basel regrouped at halftime and Streller claimed a vital away goal with a superb back-post header.
Just after gaining the advantage in the tie, Basel was 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.