Holders Bayern Munich will meet Borussia Dortmund in the German Cup semi-finals after they overcame Bayer Leverkusen 5-3 on penalties.
Thiago Alcantara scored the decisive shootout spot-kick for Bundesliga leaders Bayern, following a goalless 120 minutes in Leverkusen.
Bayern remain on course for a league, cup and Champions League treble.
Borussia Monchengladbach also lost on penalties to third-division Arminia Bielefeld in the other tie of the day.
Bayern will now host Borussia Dortmund, the team they beat in last year's final, in their last-four fixture, while Bielefeld will be at home to Wolfsburg.
The ties will be played on 28 and 29 April, with the final scheduled for 30 May.
- 21ToprakBooked at 104mins
- 5SpahicSubstituted forPapadopoulosat 90'minutesBooked at 116mins
- 8BenderBooked at 50mins
- 6RolfesSubstituted forCalhanogluat 99'minutes
- 11KießlingSubstituted forDrmicat 90+4'minutes
- 5BenatiaSubstituted forRodeat 34'minutes
- 17BoatengSubstituted forBadstuberat 117'minutes
- 4Costa SantosBooked at 71mins
- 13Ferreira de Souza
- 21LahmSubstituted forThiago Alcántaraat 68'minutesBooked at 90mins
- 25MüllerBooked at 116mins
- 6Thiago Alcántara
- Felix Zwayer
- Shots on Target