(CNN) -- Goalkeeper Tim Wiese made three consecutive penalty saves as Werder Bremen beat 10-man Hamburg 3-1 on penalties to reach the German Cup final, after the match finished 1-1 after 90 minutes and extra time.
Bremen players celebrate their dramatic German Cup semifinal victory over Hamburg.
The match was the first of four fixtures between the two sides, who will face each other again in the Bundesliga, as well as in their two-legged UEFA Cup semifinal showdown.
Bremen went ahead in the 11th minute when Diego's free-kick was only parried by goalkeeper Frank Rost, allowing Germany defender Per Mertesacker to tap home the rebound.
However, Hamburg levelled midway through the second half when Ivica Olic stuck out his leg to divert Guy Demel's shot past Wiese.
Hamburg were reduced to 10 men in the 92nd minute when David Jarolim cynically fouled Mesut Oezil when he was through on goal.
With both sides failing to convert chances in extra time, the tie went into a shoot-out. Hamburg's Joris Mathijsen and Bremen's Claudia Pizarro both scored their penalties before Hamburg's Jerome Boateng had his effort saved while Oezil made no mistake to put Bremen 2-1 ahead.
Wiese then saved Olic's effort before captain Torsten Frings put his side 3-1 up. Hamburg went out of the cup when Germany defender Marcell Jansen also saw his effort saved by Wiese.
In the Berlin final, Bremen will now face Bayer Leverkusen who also needed extra-time to beat second-division side Mainz 4-1 on Tuesday.
Leverkusen conceeded a late equalizer, but then hit back with three goals in extra time.