Bayern Munich reached a third successive DFB-Pokal final thanks to a 2-1 win over Eintracht Frankfurt, with Robert Lewandowski's winner 16 minutes from time setting up a clash with Bayer Leverkusen.
Hansi Flick's men were made to work for the victory in the second half after seeing their standards slip, but their superior individual quality eventually shone through as Lewandowski netted his 45th goal of the season.
Ivan Perisic put Bayern in front with less than a quarter of an hour played by nodding in an inch-perfect pass from the excellent Thomas Muller and they should have been coasting to the win by half-time, with the defending champions spurning several opportunities.
Frankfurt looked to have capitalised with a deserved equaliser but Danny da Costa's strike restored parity for just five minutes – Lewandowski finishing off an incisive move to book Bayern's passage to another final.
Bayern, and Muller in particular, looked in the mood right from the start, and Frankfurt were fortunate with a couple of early escapes.
Muller met a Joshua Kimmich corner with a glancing header that was cleared off the line by Dominik Kohr, before the in-form forward played the ball across the face of goal for Lewandowski and saw it to go straight through the Pole's legs.
But Bayern took the lead in the 14th minute, Perisic meeting Muller's delicate pass with a diving header.
Chances continued to fall to the hosts, but Kingsley Coman spurned two presentable opportunities and Lewandowski missed again just past the half-hour mark.
Bayern failed to raise their game to a similar level after the break, with clear-cut chances drying up and Frankfurt took advantage with 21 minutes left.
Daichi Kamada turned into space in the box and his scuffed pass fell kindly to fellow substitute Da Costa, who slotted home emphatically.
But Bayern were soon in front again – Lewandowski steering in from close range following a well-worked move, after a VAR check for a potential offside in the build-up initially delayed their celebrations.
What does it mean? Bayern show glimpse of weakness
It is fair to say the second half of this contest was easily the hardest Bayern have had to work since German football resumed last month. For a time, their midfield stopped finding incisive passes and Lewandowski's supporting cast looked devoid of ideas.
Given the standard they had set in recent weeks, opponents will need to take any encouragement they can get against Bayern, and Leverkusen might just have a little extra belief on the evidence of this performance.
Muller cream of the crop
The German forward is having a remarkable season. He was, once again, hugely influential on Wednesday, setting up Perisic's opener and another four opportunities. No one else on the pitch played as many key passes.
Thiago off the pace
He has had injury troubles of late, so Thiago Alcantara can be forgiven for looking a little rusty. Nevertheless, after his introduction from the bench, he lost the ball in dangerous places on a few occasions, and one of those almost led to a goal.
It is back to the Bundesliga at the weekend for both sides, as Bayern host Borussia Monchengladbach, while Frankfurt go to Hertha Berlin.