Eintracht Frankfurt stunned Schalke 1-0 to reach the German cup final for a second straight year, with their coach Nico Kovac's future club, Bayern Munich, awaiting them in the May 19 decider.
Forward Luka Jovic grabbed the winner with a classy backheel in the 75th, and Frankfurt hung on to win despite a red card for Gelson Fernandes for a foul on Leon Goretzka a minute after he came on.
Schalke had a stoppage-time equaliser waved away for handball.
The match lacked the quality of Tuesday's first semi-final, when Bayern thrashed Bayer Leverkusen 6-2.
But Frankfurt made the final for the eighth time and hope to make amends for last year's final defeat when they lost 2-1 against Borussia Dortmund.
The game against Bayern will be Kovac's last in charge at Eintracht before he moves on to Munich from July 1.
"We are here, we are in the final now and we can all be happy. Everyone who is associated with the club," Kovac, who used a special clause to get out of his Eintracht contract to sign with Bayern, told reporters.
"Of course, I want to win the final. We wanted it last year (against Borussia Dortmund). This year it is a different team but, again, a top team."
