Bayern Munich will face RB Leipzig in next month's German Cup final after Robert Lewandowski fired them to a semi-final victory over Werder Bremen.
The Poland striker, 30, scored twice in a superb game, his first a close-range finish to give Bayern the lead.
Forward Thomas Muller, 29, looked to have sealed the win, but two goals in two minutes - from Yuya Osako and Milot Rashica - levelled the tie.
However Lewandowski then converted a penalty after a foul on Kingsley Coman.
Bayern will face RB Leipzig in the final at Berlin's Olympic Stadium on 25 May, where they will seek to win the trophy for a record-extending 19th time.
They also lead the Bundesliga table by a point from Borussia Dortmund with four games to play.