Substitute Ilkay Gundogan hit the winner in the last minute of extra time as German league leaders Borussia Dortmund beat second division Greuther Fuerth 1-0 in Tuesday's German Cup semi-final.
The defending Bundesliga champions will now face either Borussia Moenchengladbach or Bayern Munich, who meet in Wednesday's other semi-final, in the German Cup final at Berlin's Olympic Stadium on May 12.
Fuerth battled hard throughout at their sold-out Trolli Arena stadium with each one of the 15,500 seats taken as the second-division leaders were denied their first cup final appearance.
With time almost up, Gundogan fired home from the edge of the penalty area after Fuerth's coach Mike Bueskens had switched goalkeepers just two minutes before and Jasmin Fejzic was beaten at the near post in the 120th minute.
Dortmund could have won the game over the 90 minutes as both Japan winger Shinji Kagawa and Germany midfielder Kevin Grosskreutz fired just wide in the second half.
Borussia had the better of the chances with 17 shots on goal after the first 100 minutes compared to the Bavarians' four.
Dortmund will be looking to claim their third German Cup title having last won the trophy in 1989.
In Wednesday's other semi-final, Gladbach host Bayern looking for their third consecutive victory over the Bavarian giants this season.
Gladbach have won both their Bundesliga matches against Bayern this season, a 1-0 victory in Munich on the first day of the season and then a 3-1 home win in January.
Moenchengladbach midfielder Patrick Herrman, who scored two of the three goals against Bayern in January, is set for a return against the Bavarians a month after fracturing his collarbone.
Bayern will be without Germany star Bastian Schweinsteiger who is working his way back to full fitness after tearing ankle ligaments in February.
Bayern are in fine form having scored 20 goals in their last three games while Gladbach needed a late goal to seal a 2-1 win at Leverkusen on Saturday in the league, the same day Bayern won 6-0 at Hertha Berlin.