Following a goalless 120 minutes, Bayern keeper Manuel Neuer, who was in fine form throughout the game, saved a penalty by Havard Nordtveit after Gladbach’s Dante had fired his spot kick over the bar to clinch a 4-2 win on penalties.
Bayern are also still in the running for the Bundesliga and Champions League titles.
Dortmund, top of the league with a five-point lead ahead of second-placed Bayern, had booked their spot on Tuesday with a last-gasp goal in extra time for a nervous 1-0 win over second division leaders Greuther Fuerth.
“Both teams played an outstanding game,” Bayern coach Jupp Heynckes told reporters. “We had more chances but it was an open game until the end. “(Keeper) Manuel Neuer has to be singled out for a superb performance.”
Hosts Gladbach, unbeaten at home for the previous 18 consecutive games having won 13 and drawn five, had twice defeated the Bavarians in the league this season.
They were lucky, however, not to concede a goal after six minutes with Toni Kroos’ low drive hitting the post.
Bundesliga top scorer Mario Gomez was then denied by Gladbach keeper Marc Andre ter Stegen, who parried the forward’s powerful header.
In an entertaining encounter, Bayern, who had scored 20 goals in their last three games, had the better chances with Arjen Robben twice coming close while Gladbach’s Marco Reus was also twice denied by keeper Manuel Neuer, including six minutes from time in a one-on-one situation.
Dutchman Robben tried his luck from a distance in extra time but his thundering drive was spectacularly palmed away by ter Stegen.
In the penalty shootout that saw Bayern reach their 18th cup final and their third in the last five editions, it was Gladbach defender Dante, reportedly close to joining Bayern for next season, who sent his spot kick over the bar.
Neuer then saved a weak penalty from Norwegian Nordveit to seal their spot in the final.
Led by the insatiable Lionel Messi, Barcelona will seek to end a perfect week on Saturday by winning at Mallorca to pile the pressure on Real Madrid after the stumbling Spanish league leader drew back-to-back matches.
Messi broke Barcelona’s all-time scoring record in helping the three-time defending champions cut Madrid’s lead from 10 to six points in the past two rounds.
“There are 10 games left and we have to try to take away the highest number of points possible,” Barcelona midfielder Thiago Alcantara said. “We can only concentrate on our games.”
Madrid hosts Real Sociedad later on Saturday in need of a win after conceding late goals from free kicks to drop points to Malaga and Villarreal this week.
Madrid will play the match without coach Jose Mourinho, defender Sergio Ramos and midfielder Mesut Oezil. They will all be serving one-game suspensions after being sent off at the end of the ill-tempered 1-1 draw at Villarreal on Wednesday.
Pepe could also face suspension and miss the game against Sociedad after reportedly insulting the referee following the match at El Madrigal stadium.
That would leave Madrid without both starting center backs and two of its most dangerous attacking players, with winger Angel Di Maria still sidelined by a nagging injury.
“They are two of the best center backs in the world, but we are talking about Real Madrid and their bench players are also very good,” said Sociedad forward Carlos Vela, whose team has lost its past four games away from Anoeta stadium.
“It’s going to be tough even if they don’t play. We will have to have a perfect game to take away a positive result.”
Despite the consecutive draws, defender Marcelo said Madrid is still on course for its first league title in four years.
“I think that any team would like to have a six-point lead,” Marcelo said. “We have to stay calm. We didn’t win, but the team’s spirit is high.”