Jeremie Frimpong opened the scoring seven minutes in, with Amine Adli adding another on the 20-minute mark. With five goals, Adli is the top scorer in the cup this season.
Wirtz added a third 10 minutes before half-time and doubled up from the spot on the hour mark to seal a comfortable victory for Xabi Alonso’s side.
The win, which extended Leverkusen’s remarkable unbeaten record to 40 matches this season, keeps the dreams of a treble alive for a team with just two major trophies in club history.
Midfielder Granit Xhaka said his side were “doing everything we can to make the fans’ dreams come true after so many years.”
“A final is always special,” Alonso said, explaining “we will be ready but we need to enjoy this moment.”
They won the German Cup in 1993 but have finished runners-up three times since. Having never won the Bundesliga, Leverkusen are currently 13 points clear of second-placed Bayern Munich with seven games to play.
“It’s a very good result and we managed to qualify for the final. It’s fun to celebrate with the fans and to see the enjoyment when you look in their faces,” said Wirtz.
“We’re happy we could make them happy today.”
Wirtz, the major target of transfer speculation at the club now that Alonso has pledged to stay with Leverkusen next year, told ZDF: “I’m not going to talk about those topics tonight — we’re going to celebrate.”
Standing next to the German Cup, Leverkusen defender Jonathan Tah said: “We’re glad that we’ve got a chance to grab that beautiful thing there in the final.”
Asked if he wanted to touch it, Tah declined, saying “we’re waiting”.
On Tuesday, Kaiserslautern beat third-tier Saarbruecken to become the first second-division side in the final since 2011.
Duesseldorf’s hopes of joining Kaiserslautern in the first-ever all second-division final took an early hit, Frimpong slamming in from close range after seven minutes.
Wirtz, again pulling the strings for Leverkusen despite being just 20, found Adli who blasted home confidently to double the lead.
Leverkusen scored a third after winning the ball back and working it quickly to Wirtz, who shed a defender and finished past Florian Kastenmeier.
After 60 minutes, Patrik Schick’s header connected with the hand of Duesseldorf’s Matthias Zimmerman, with the referee pointing to the spot after a VAR review.
Kastenmeier guessed correctly but Wirtz’s shot was perfectly tucked inside the left post, and the home fans broke out into chants of “Berlin, we’re going to Berlin” for May’s cup final.
© Agence France-Presse
Photo: Twitter @Christo79744616