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.
- 23Gebre Selassie
- 5AugustinssonSubstituted forHarnikat 81'minutes
- 6MöhwaldSubstituted forPizarroat 65'minutes
- 10KruseBooked at 84mins
- 30KlaassenBooked at 25minsSubstituted forEggesteinat 89'minutes
- 5HummelsBooked at 26mins
- 8Martínez Aguinaga
- 6Thiago AlcántaraSubstituted forRodríguezat 76'minutesBooked at 84mins
- 22GnabrySubstituted forGoretzkaat 58'minutes
- 25MüllerSubstituted forFerreira de Souzaat 89'minutes
- 9LewandowskiBooked at 90mins
- 13Ferreira de Souza
- 35Renato Sanches
- Daniel Siebert
- Shots on Target