Borussia Dortmund conceded a last-minute equaliser in extra time before losing to Werder Bremen on penalties in a thrilling German Cup last-16 tie.
More than 80,000 fans saw strikers Paco Alcacer and Max Philipp miss Dortmund's first two penalty kicks after a 3-3 draw at the Westfalenstadion.
The Bundesliga leaders were in charge when Achraf Hakimi scored with seven minutes left in extra time, but Martin Harnik levelled in the 119th minute.
Max Kruse scored the winning spot kick.
Dortmund – who are seven points clear at the top of the table – are four-time winners of the DFB Pokal, most recently in 2017.
Chelsea-bound winger Christian Pulisic scored a solo goal to put Dortmund 2-1 up in the first period of extra time but 40-year-old Claudio Pizarro – once of Chelsea – equalised.
Captain Marco Reus had scored a fine free-kick to cancel out Milot Rashica's fifth-minute opener but later had to go off with an injury.
Elsewhere, second division side FC Heidenheim made it through by beating Bayer Leverkusen. Bayern Munich face Hertha Berlin on Wednesday.