Marco Reus, Thorgan Hazard and Jude Bellingham were also on target in a first-half rout, Dortmund dismantling its second-tier opponent to set up a showdown with RB Leipzig on 14 May (AEST).
Kiel had sensationally ended Bayern Munich's reign in the competition when knocking out the holder on penalties in the second round.
It also came out on top in a dramatic shootout against Darmstadt in the Round of 16, while it progressed to the semi-finals thanks to a 3-0 triumph away at Rot-Weiss Essen.
However, any hopes of another upset had long disappeared by half-time at Signal Iduna Park as the injured Haaland – ruled out with a muscle issue – watched on from the stands.
Reyna scored the first two. His opener was teed up by Jadon Sancho before he added another from close range, tapping in after Reus's attempted cross had been back-heeled into the path of the United States international by Raphael Guerreiro.
Reus was next to score, poking the ball past goalkeeper Thomas Dahne after Emre Can's lofted pass had picked out his team-mate's run beyond Kiel's overworked defence.
Hazard capitalised on a loose pass to make it four goals in a crazy 16-minute spell, while a long-range shot from Bellingham found the net thanks to a sizeable deflection off Simon Lorenz that left poor Dahne with no chance.
The onslaught allowed Dortmund coach Edin Terzic to make a slew of changes with one eye on a pivotal Bundesliga run-in, while poor Kiel was happy to avoid any further punishment in a second half that had a testimonial feel to it.
Securing a top-four Bundesliga finish is the priority for Dortmund, but an up-and-down season that has included the departure of head coach Lucien Favre could yet see silverware secured.
It has not won the cup since 2017 when current Chelsea boss Thomas Tuchel was in charge.
While Leipzig had to work hard to seal progression on Saturday (AEST), beating Werder Bremen with a dramatic winner at the end of extra-time, its opponent for the Berlin final was able to coast through.
There will be a dress rehearsal for the final next Sunday (AEST) when Dortmund hosts Leipzig, though Bundesliga points – not prizes – will be on offer.