Goalkeeper Jiri Pavlenka was Bremen's hero in the shoot-out as he saved Dortmund's opening attempts from Paco Alcacer and Maximilian Philipp as Bremen won the last-16 tie 4-2 on penalties.
It finished 1-1 over 90 minutes after Dortmund captain Marco Reus rifled home a direct free-kick to cancel out an early goal by Bremen's Milot Rashica.
The game exploded into life with four goals in extra time as Bremen twice equalised, through substitutes Claudio Pizarro and Martin Harnik, to force penalties after Chelsea-bound Christian Pulisic and Achraf Hakimi had scored for Dortmund.
Dortmund go nine points clear of Bayern Munich
"It's a bitter defeat," admitted Dortmund striker Mario Goetze.
"We shouldn't have conceded two equalisers in extra time and then to lose on penalties is really tough."
Peru veteran Pizarro, who turns 41 in October, was delighted with his 56th German Cup goal.
"That will have done us good - we deserved to go through," beamed the former Chelsea and Bayern Munich striker.
Flu meant Dortmund were without England winger Jadon Sancho and defender Lukasz Piszczek, as well as first-choice goalkeeper Roman Burki and his back-up, Swiss international Marwin Hitz.
It meant third-choice keeper Eric Oelschlaegel made his Dortmund debut against Bremen, the club he left last June after six years.
The 23-year-old was beaten after just five minutes when Rashica stabbed home a Max Kruse free-kick to stun the sell-out crowd of 80,500.
Dortmund equalised just before the half-time break when Reus fired home a superb direct free-kick for his 17th goal of the season.
Both sides had chances late in the second half as Oelschlaegel made a superb one-handed save from a Kruse free-kick.
Dortmund midfielder Thomas Delaney then hit the crossbar with the 90 minutes up.
Pulisic looked to have settled the matter by netting just before the end of the first period of extra time after dribbling through the away defence.
Bremen came back with Pizarro knocking the ball home at the second attempt in a goal-mouth scramble to make it 2-2 on 108 minutes.
Dortmund regained the lead when defender Achraf Hakimi finished off a move he started on 113 minutes, but Harnik levelled the score in the 119th minute before Pavlenka's heroics in the shoot-out.
Dortmund, Bayern out to avoid slip ups in title race
Bayern Munich face Hertha Berlin away on Wednesday having lost their last two games at the Olympic Stadium -- crashing 2-0 in the Bundesliga last September and losing May's German Cup final 3-1 to Eintracht Frankfurt.
Germany goalkeeper Manuel Neuer is expected to be back in the Bayern goal wearing a plastic cast after suffering a thumb injury last week.
Earlier on Tuesday Bayer Leverkusen, who pulled off a shock 3-1 win over Bayern last Saturday, were another big name casualty as they slumped to a 2-1 defeat at second-division Heidenheim.
Germany winger Julian Brandt gave Leverkusen the lead, but after Heidenheim striker Nikola Dovedan equalised, midfielder Maurice Multhaup hit the winner 18 minutes from time after previously hitting the bar.
Hamburg were another second-division club to boot a Bundesliga club out of the last 16 when 20-year-old Turkey international Berkay Ozcan scored their second-half winner in a 1-0 victory over Nuremberg.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ