They will face Chelsea in their own Allianz Arena in Munich on May 19th after losing their return leg 2-1 after extra-time, to send the tie into penalties with the Germans having won by the same score in the first game.
The keeper stopped Madrid's two initial spot-kicks from Cristiano Ronaldo and Kaka, and Sergio Ramos blazed one over the bar before Bastian Schweinsteiger held his nerve to put the four-times European Champions through to the final.
They last appeared in a final two years ago losing 2-0 on this same stage to Jose Mourinho's Inter Milan.
Earlier Ronaldo had scored twice for Real before Arjen Robben grabbed one back in a frantic first half-hour to level the tie.
As the players gradually tired penalties loomed ever larger for only the third time in a semi-final in the Champions League era.
Bayern coach Jupp Heynckes was delighted on the final whistle.
"We played a great game against an extraordinary opponent who went 2-0 ahead tonight but we have managed to get a goal back, our goalkeeper has been great at the end and we've had a bit of luck.
"I told them before we may have to play for 120 minutes but I did not expect the penalties. My players are tired, the tension was high, but we've achieved our main objective of the season, it was almost an obsession for us to play the final in our stadium," he said.
Counterpart Mourinho was philosophical about the defeat.
"You have to be level-headed about it when you win and lose, football is like that.
"My team had a huge game in our league (against Barcelona) at the weekend while they were able to rest players and it was noticeable towards the end.
"At 2-1 any mistake would have lost the game but I'm proud of my players and we have to be strong. If we win our league it's a big step forward for us and we need six points for that," he said.
He went on to analyse the final between Bayern and Chelsea.
"I hope it's a good game but I obviously want Chelsea to win, they were heroes to beat Barcelona with ten men," he continued.
The game started at a furious pace and German international Sami Khedira had the first chance of the game on three minutes for Real forcing a save from Neuer in the Bayern goal.
Two minutes later and Madrid were ahead thanks to Ronaldo from the penalty spot after Angel Di Maria's shot had fortuitously hit the outstretched arm of David Alaba.
Alaba was booked for that and will miss the final - later bookings for Luiz Gustavo and Holger Badstuber means they will also miss the big game.
Bayern's response was immediate and Robben should have levelled the game when he met Alaba's cross in the six-yard box.
Iker Casillas in the Madrid goal did enough to hurry the Dutchman, whose shot spun over the bar when it seemed certain he would score.
On 12 minutes Casillas blocked a shot from Toni Kroos and just when it seemed Bayern would quickly get back into the game Ronaldo struck again.
Khedira was quick in the tackle deep in Bayern's half to allow Mesut Ozil time to supply the Portuguese with a perfect pass that he converted with a well placed left footed shot.
Bayern fought back and their reward came from the penalty spot after Pepe pushed Gomez, Robben levelling the tie at 3-3 on aggregate.
Ronaldo had a shot that fizzed past the post and then Karim Benzema curled a right footed shot wide for Madrid.
Then Gomez should have done better for Bayern when put clear by Kroos, his shot easily blocked by Casillas.
Gomez glanced a header wide for Bayern on the re-start as the Germans seemed to have halted the home team's early dominance.
Mourinho was the first to shuffle his pack, replacing Di Maria with Kaka, but as full-time approached players began to tire and passes went astray.
Gomez could have sealed it for Bayern with four minutes of normal time remaining if he'd reacted quicker to Robben's pass.
Bayern continued to look the fresher side in extra-time but the game had slowed to a walking pace as the shootout loomed.