Neither side was able to score within 90 minutes, but at the start of extra time, Leipzig increased the pressure to seal a dramatic victory.
Leipzig made a bright start on the road as Alexander Sorloth’s header on target forced Bremen goalkeeper Jiri Pavlenka into action with four minutes gone.
Bremen defended deep in their own territory and focused on fast breaks, but Joshua Sargent squandered a counterattack with only Leipzig custodian Peter Gulacsi to beat at the half-hour mark.
The hosts thought they had penalty in the closing stages of the first half, but after a VAR review the penalty was turned over.
After the restart, Leipzig piled on the pressure, but Bremen’s well-positioned defence neutralized every attack.
Leipzig had to wait until the hour mark before its next clear-cut opportunity, as Angelino rattled the woodwork with a free-kick from the edge of the box.
Six minutes later, the visitors created their next opportunity, as Willi Orban headed Christopher Nkunku’s cross into the box onto the bar.
As the match progressed, both sides took more risks but neither could find the net within 90 minutes. Leipzig made a fairy-tale start into extra time as Hwang Hee-chan broke the deadlock in the 93rd minute after beating Pavlenka from eight meters.
Leipzig’s joy was short-lived, as Leonardo Bittencourt danced through Leipzig’s defence before finishing with a well-placed shot to restore parity in the 105th minute.
Both sides seemed to have settled for the penalty shootout, but Hwang remained in the thick of things and teed up for Forsberg, who made no mistake to volley home in the dying seconds.
With the result, Leipzig moved into the second German Cup final in the club’s history, whereas Werder Bremen were knocked out in the semifinals for the third time.
“We played really well, and it was a hard fight for both teams, but I am of course bitterly disappointed. We gave all and still crashed out again in the semifinals,” said Bremen head coach Florian Kohfeldt.
“We snatched a dramatic victory. Late goals are always very special. My team pressed frenetically for the win. I think it is a deserved win for us. Bremen made our life really difficult today. It was a close one,” said Leipzig head coach Julian Nagelsmann.
On Saturday, Borussia Dortmund clash with second division side Holstein Kiel to battle for the last final ticket.