Thomas Muller kept Bayern Munich's treble hopes alive with both goals in a 2-0 DFB-Pokal semi-final victory over Werder Bremen.
Bayern, who lead the Bundesliga and are into the last four of the Champions League, eased into their fourth cup final in five years as Muller scored in each half at the Allianz Arena, taking him past 150 goals for the club.
Muller's milestone goal came after 30 minutes as he powered a header beyond Felix Wiedwald. That was the highlight of a half dominated by Bayern, but adding to their lead proved difficult and they were given a huge let-off on the hour.
Under pressure from Fin Bartels, David Alaba looped his attempted clearance over goalkeeper Manuel Neuer, but referee Tobias Stieler spared his blushes as he ruled it out for an earlier foul.
Bayern duly put the game to bed soon after as substitute Arturo Vidal went down in the penalty area under a challenge from Janek Sternberg, allowing Muller to convert from the spot and secure the hosts' progression.
Their opponents in May's final will be decided on Wednesday when Hertha Berlin face Borussia Dortmund in the second semi.
After extending their unbeaten run in all competitions to nine matches against Schalke on Saturday, Bayern started well and threatened through the impressive Kingsley Coman.
The young French winger delivered two teasing crosses into the Bremen penalty area in the opening 20 minutes, but Franck Ribery and Robert Lewandowski were unable to convert.
Bayern continued to make all the running but uncharacteristically lacked quality in the final third, while Bremen were limited to a handful of counter attacks that failed to concern Neuer.
The hosts eventually found their range as Muller opened the scoring just after the half-hour mark, the World Cup winner given the freedom in Bremen's penalty area to head home Xabi Alonso's corner.
With five minutes of the half to play, Bremen were nearly handed an equaliser as Neuer - venturing outside his penalty area - gave away possession, but he was able to recover in time to hold on to Sambou Yatabare's attempted lob.
Ribery and Coman continued to profit down the flanks after the restart but Bayern were still struggling to convert.
Bremen thought they had punished their illustrious rivals just after the hour as Alaba's miscued clearance lobbed Neuer, but referee Stieler controversially ruled Bartels had fouled the Austrian in the build-up.
To rub salt into Bremen's wounds, Bayern were awarded a penalty 10 minutes later when Sternberg was adjudged to have fouled Vidal, allowing Muller to slot home his second from the penalty spot.
Alaba and Vidal both wasted late opportunities to add to Bayern's lead, but it mattered little as they made it 10 games without defeat in all competitions on their way to yet another cup final.