Emil Forsberg (R) scores the winning goal in Friday's German Cup semi-final
Emil Forsberg volleyed RB Leipzig into the German Cup final by sealing a 2-1 win at Werder Bremen with a stunning last-gasp goal in extra-time on Friday.
Hwang Hee-chan had put Leipzig ahead at the start of extra-time only for Bremen midfielder Leonardo Bittencourt to level with a superb finish before Forsberg came off the bench to hit the winner.
"I was only on for about five minutes, but that was enough to get the goal," said Forsberg.
"We are all really happy to be in the final and looking forward to it," he added as Leipzig face either Borussia Dortmund or Holstein Kiel, who knocked out Bayern Munich, in the final on May 13.
"We lost to Bayern the last time," he added having played in the team which lost the 2019 German Cup final 3-0 in Berlin, "so the passion and desire to win the cup is huge."
Leipzig coach Julian Nagelsmann, who will coach Bayern next season, can sign off after two seasons by lifting the German Cup.
"The boys fought hard, it's been a turbulent week for the club and we deserved the win," said Nagelsmann after his departure to Bayern was confirmed on Tuesday.
"I would love to finish with a title for Leipzig."
His side romped to a 4-1 win in Bremen when the teams met in the league three weeks ago, but the hosts put up a fight this time.
Werder goalkeeper Jiri Pavlenka pulled off a superb save to deny Leipzig striker Alexander Sorloth with four minutes gone.
Bremen's US striker Joshua Sargent fired wide with the goal at his mercy after getting the better of Leipzig defender Dayot Upamecano on half an hour.
Just before the break, Bremen had a penalty decision reversed after referee Manuel Graefe judged Davie Selke had exaggerated contact from Leipzig defender Nordi Mukiele.
It finished goalless at the break, but Leipzig hit the woodwork three times in the second-half.
Mukiele hit the post shortly after half time, then Leipzig defender Willi Orban also rattled the woodwork with 65 minutes gone with a powerful header.
Pavlenka palmed a shot by Christopher Nkunku onto the post and in added time, Pavlenka produced a stunning save to deny a Yussuf Poulsen header and take the game to extra time.
Leipzig got the breakthrough when Poulsen flicked the ball through to Hwang, who held off his marker and fired home three minutes into extra-time.
The South Korea striker is reportedly being chased by Premier League sides Everton, Brighton and West Ham United.
However, a mistake by Upamecano allowed Bittencourt to sprint clear, round Leipzig goalkeeper Peter Gulacsi and equalise from a tight angle in the 105th minute.
Forsberg came on in the second period of extra-time and volleyed home Hwang's header from close range to break Bremen hearts.