Jurgen Klopp will end his Borussia Dortmund career with a DFB-Pokal final after they clinched a dramatic penalty shootout win over defending champions Bayern Munich.
After normal time ended with the sides level at 1-1, the extra 30 minutes failed to produce a winner - though Kevin Kampl did see red for Dortmund - and Bayern goalkeeper Manuel Neuer missed the crucial spot-kick after Philipp Lahm, Xabi Alonso and Mario Gotze had also failed from the spot to send Klopp's men through 2-0 on penalties in his final season at the helm.
Earlier Robert Lewandowski had put Bayern ahead with his third goal in as many games against the club he left for the Allianz Arena in July last year.
However, that was cancelled out in the 75th minute by Pierre-Emerick Aubameyang, who struck from close range to force extra time.
Arjen Robben, who had come on to mark his return from injury seven minutes before that goal, limped off late on to inflict another blow on Bayern, who were crowned Bundesliga champions for the third season running on Sunday.
Bayern's luck appeared to be in when Dortmund substitute Kampl was sent off for a second bookable offence in the additional half an hour, but they could not force a way through and Pep Guardiola's men saw their hopes of a treble ended as the visitors kept their cool in the shootout to seal a place at the Berlin showpiece.
It did not start well for last season's Pokal runners-up, though, as Dortmund were caught cold by former talisman Lewandowski in the 29th minute.
The Pole raced on to a superb long ball from the returning Medhi Benatia following an errant Shinji Kagawa pass at the other end and hit home on the rebound at the near post after seeing his initial chipped effort strike the woodwork.
Guardiola's side continued to dictate matters after the interval, a near-post save from Mitchell Langerak preventing Thomas Muller from adding a second after 48 minutes.
Lewandowski then curled a shot against the crossbar before Bayern were denied what looked to be a clear penalty as Marcel Schmelzer handled in the area in the same passage of play.
Robben came on in the 68th minute to make his return from an abdominal muscle tear that has kept him out for five weeks, but the Allianz Arena was silenced by Aubameyang seven minutes later.
Neuer could only parry the Gabon striker's shot after it had crossed the line as he slid in at the far post to convert Henrikh Mkhitaryan's ball across the face of goal.
Aubameyang then almost turned provider after Robben limped off to be replaced by Gotze, slipping Marco Reus through on goal, only to see Neuer rescue Bayern with a fingertip save round the post to force extra time.
An unmarked Bastian Schweinsteiger headed over Xabi Alonso's free-kick in the first half and the game turned drastically in Bayern's favour when Kampl was dismissed for fouling the hosts' vice-captain.
Schweinsteiger was then brilliantly denied a winner in the 114th minute as his point-blank header was kept out by the legs of Langerak, who was perhaps fortunate not to concede a penalty when he collided with Lewandowski.
Dortmund held on to ensure a shootout and saw Bayern's first three all miss, with Neuer's save from Mats Hummels immaterial as the Bayern goalkeeper crashed the subsequent spot-kick against the bar.