Mueller now has 31 goals in all competitions, four in the Cup, as the 26-year-old headed home in the first half, then converted a penalty after a cynical dive from Arturo Vidal.
Bayern secured their passage to their 21st final -- on May 21 at Berlin's Olympic Stadium -- as they starved Bremen of the ball with 70 percent possession.
Champions League: Barcelona to face Atletico Madrid, PSG meet Man City
Nevertheless, the match-winner was far from pleased with Bayern's performance.
"The most important thing was going through, but we made too many mistakes and it wasn't a pleasant game for us," said Mueller.
"We have played better, but it's a nice feeling to be in the final."
The Bavarian giants will face either Borussia Dortmund or Hertha Berlin, who meet in Wednesday's other semi, having already lifted the trophy a record 17 times.
Champions League: Barcelona to face Atletico Madrid, PSG meet Man City
It keeps Bayern on course for a repeat of their 2013 treble in what is Pep Guardiola's third and final year of his Munich contract before coaching Manchester City next season.
Bayern face a busy few weeks.
They play Atletico Madrid away in a week's time in the Champions League semi-final with the return leg in Munich on May 3.
They are at Hertha in Berlin on Saturday, with a seven point lead in the Bundesliga and four games left, as they bid to become the first club to win four consecutive Bundesliga titles.
This was the clash of Germany's two best cup teams with Bayern and Bremen having won the trophy 23 times between them.
In the last 13 years, Bayern have won the Cup seven times.
Guardiola named a near full-strength team in front of a crowd of 75,000 although Vidal, Douglas Costa and Thiago Alcantara were on the bench.
The hosts needed just half an hour to take the lead at Munich's Allianz Arena when Mueller was left unmarked in the middle of the area to head home Xabi Alonso's corner.
But Bremen wasted one of only two first-half chances with 40 minutes gone.
Bayern's Manuel Neuer mistimed his clearance straight to Sambou Yatabare, but the Mali midfielder failed with his attempt to lob the Germany goalkeeper.
Neuer had to pick the ball out of the Bayern net early in the second half when Bayern defender David Alaba lobbed his own goalkeeper, but the referee whistled for a foul by Fin Bartel.
Vidal replaced France winger Kingsley Coman on 67 minutes and the Chile international helped win Bayern a penalty just three minutes later.
Bremen defender Janek Sternberg tackled the box-to-box midfielder and Vidal went down in the area, but replays showed he dived without there being any contact.
Nevertheless, referee Tobias Stielder pointed to the spot and Mueller drilled home the penalty.
Bremen can now concentrate on surviving the relegation battle as they remain in the Bundesliga's bottom three, two points from safety, ahead of Friday's north German derby at Hamburg.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ