Holders Bayern bow out of German Cup
On a dramatic evening in Duesseldorf, Leverkusen raced into a 3-0 lead, scoring all three goals in 16 frantic second-half minutes.
With their fans delirious in the stands Leverkusen were cruising before Bayern struck twice in two minutes to set up an electrifying finale only to then concede a late fourth.
Leverkusen were joined on Wednesday by Werder Bremen, who ousted VfL Wolfsburg 5-2, and Hamburg after they beat second division Wehen Wiesbaden 2-1.
On Tuesday Mainz beat Schalke 1-0 to become the only second-tier team to move into the last four.
Tranquillo Barnetta's thundering drive from 20 metres gave Leverkusen the lead in the 54th minute before Arturo Vidal and Patrick Helmes increased the scoreline to 3-0.
Bayern fought back with Lucio heading in a cross at far post in the 72nd minute.
Two minutes later it was Miroslav Klose's turn to catch the Leverkusen defence napping when he was left unmarked to head home from close range.
Bayern desperately poured forward for an equaliser that would send the game into extra-time but were left exposed at the back allowing Stefan Kiessling to seal the win deep in stoppage time.
The defeat is certain to fuel further criticism of Bayern coach Jurgen Klinsmann, as the champions are also in a league slump, having won only one of their five matches since the start of the year.
In another high-scoring affair Brazilian playmaker Diego and Peruvian striker Claudio Pizarro scored two apiece to steer Werder Bremen to a 5-2 win away to Wolfsburg.
Hamburg had easier work against bottom-of-the-table Wiesbaden, taking the lead after 17 minutes when Collin Benjamin's low cross was met by Mladen Petric at the near post.
The Croatian added his second when he was left unmarked in the box to control a Marcell Jansen cross and fire home from eight metres. Wiesbaden scored five minutes from time through Sandro Schwarz.