Borussia Dortmund will meet rivals Bayern Munich in the DFB-Pokal final after inflicting a 3-0 defeat on Hertha Berlin in the semi-finals.
Thomas Tuchel's side put in a dominant performance at the Olympiastadion as goals from Marco Reus, Gonzalo Castro and Henrikh Mkhitaryan put paid to the hosts.
More than 76,000 watched on as Reus finished off a cross from Shinji Kagawa with a quarter of an hour to go after Castro - who had been forced off the in the first half field to have a head injury stitched up - fired Dortmund into the lead on 20 minutes.
Castro struck a superb swirling effort into the top corner from the edge of the 18-yard box in a first half which could have seen the away side three or four up.
Hertha had their outstanding keeper Rune Jarstein to thank for giving them a chance after a string of saves in the second half before Reus made it 2-0 and then turned creator for Mkhitaryan's late settler.
BVB were without their quarter-final hero Pierre-Emerick Aubameyang, who missed the game after chipping a bone in his toe in training, but his absence did not affect the away side in the end.
Bundesliga leaders Bayern - who are seven points ahead of Dortmund - booked their place in the DFB-Pokal final, which also takes place at the Olympiastadion, on Tuesday when Thomas Muller scored both goals in a 2-0 win over Werder Bremen.
Marcel Schmelzer, ex-Hertha striker Adrian Ramos and Reus all went close as Dortmund made a lively start.
But Castro made their dominance pay on 20 minutes, curling an effort into the top corner from the edge of the box after a blocked shot dropped at his feet following good work from the dangerous Mkhitaryan and Kagawa.
Dortmund should have doubled their lead just five minutes later when Schmelzer squared a bouncing ball into Reus, who, uncharacteristically, blasted over from 10 yards out.
Reus had a fierce effort palmed away by Hertha goalkeeper Jarstein, although Jens Hegeler ought to have equalised with the last kick of the half but he fired straight at Roman Burki.
Dortmund controlled the early exchanges of the second half, but missed the chance to go further ahead when Reus gave the ball away with Kagawa free in the box.
Hertha rallied and were inches away from equalising just after the hour mark when John Brooks flicked on a corner but Salomon Kalou could not make contact with the ball from a few yards out.
Ramos came close to inflicting further pain onto his old club on 67 minutes but his strike was pushed away by Jarstein, and the keeper pulled off a flying stop minutes later after Mkhitaryan struck a sweet volley which was heading into the corner of the net.
Hertha were made to pay minutes later when Kagawa broke down the right after Brooks had slipped and his cross was finished first time by Reus' swinging right footed strike.
And Reus provided Mkhitaryan with a simple tap-in with time running out, as Dortmund booked their return to Berlin in style.