Substitute Emil Forsberg scored a dramatic late extra-time winner against Werder Bremen in to send RB Leipzig through to the German Cup final.
Forsberg’s 121st-minute volley gave Leipzig the 2-1 win after both teams had failed to score in normal time.
Hwang Hee-chan put Leipzig ahead after 93 minutes before Bremen levelled through Leonardo Bittencourt at the end of the first period of extra time.
Borussia Dortmund host second-tier side Holstein Kiel in the other semi-final.
The victory means Leipzig and manager Julian Nagelsmann have a chance to play for their first major trophy before the German joins Bayern Munich on a five-year contract at the end of this season.
American and current Red Bull Salzburg coach Jesse Marsch will replace Nagelsmann at Leipzig.
The German Cup final is set to take place on Thursday, 13 May.