Neymar's first-half goals made sure Barcelona went through 5-3 on aggregate following its 3-0 victory in the home leg last week.
Bayern managed a face-saving victory but has stumbled in the Champions League semifinals in both seasons under Pep Guardiola, the former, highly successful coach of Barcelona.
"We brought a good result to Munich but Bayern took the lead. That was not easy, but we reacted well," Barcelona coach Luis Enrique said. "We levelled and we created chances. The team was good and had the lead at halftime. The second half was physical, Bayern players fought and wanted to turn the game."
Barcelona, a four-time winner of the title, with two of them coming under Guardiola, reached its eighth Champions League final.
"It's a wonderful goal we reached," Luis Enrique said. He and Guardiola embraced after the match.
Bayern needed to score while keeping Barcelona's high-powered attack in check. Bayern scored early through Medhi Benatia to gain some hope, but Neymar replied quickly and Barcelona booked a place in the June 6 final in Berlin despite second-half goals by Robert Lewandowski and Thomas Mueller for the home side.
Barcelona will play either Juventus or Real Madrid. Juventus leads 2-1 going into the Madrid leg of the semifinal on Wednesday.
The two matches against his former team were a bitter experience for Guardiola, whose Bayern side was also eliminated in last season's Champions League semifinals by eventual winner Real Madrid.
Over four semifinal legs in his first two seasons in charge of Bayern, Guardiola's record is of three losses and only one win — the meaningless one on Tuesday.
Bayern secured its second Bundesliga championship under Guardiola last month but lost in the semifinals of the German Cup and will end the season with only one trophy, while it sought to repeat the treble it completed in 2013 under previous coach Jupp Heynckes.
"I am very proud of my players," Guardiola said. "And also big compliments to Barcelona, I hope they win the fifth title."
"We did everything we could. It's a pity. I hope we can play better next season" — Guardiola's last on his current contract.
Guardiola pointed out the many injuries Bayern has had to deal the entire season — wingers Franck Ribery and Arjen Robben were both unavailable on Tuesday — and said he would now "celebrate the Bundesliga title."
Bayern, a five-time title winner, got off to the start it wanted, scoring seven minutes into the match when defender Benatia rose to head in Xabi Alonso's corner.
But Barcelona's reply came in the 15th, when Lionel Messi slid a through pass to Luis Suarez, who squared the ball to the unmarked Neymar, who had a simple job of tapping home.
The tie was decided in the 29th, with Neymar's second goal. Messi won a header, got the ball to Suarez and he found Neymar at the far post. Neymar controlled the ball with his chest and drilled it past goalkeeper Manuel Neuer.
Messi, Suarez and Neymar have combined for 114 goals this season.
"They have a lot of qualities. We don't need to talk about the trio's qualities, they understand each other very well. It is difficult to control them. They used their chances," Luis Enrique said.
Speaking of Messi, Guardiola said: "He is back there where I had the privilege to train him. He is the best player of all time, I compare him with Pele. I am so happy to see this football."
Neymar's clinical finishing and some good saves by its German goalkeeper Marc-Andre ter Stegen left Bayern needing to score five in the second half.
Ter Stegen protected Barcelona's lead late in the first half when he stopped Lewandowski's effort despite being caught on the wrong foot. With the ball trickling toward the net, he lunged backward to push it away from the line.
The keeper also did well to smother a shot from Lewandowski and had to stretch to full length to tip over a looping header from Mueller.
Lewandowski levelled in the 59th with a shot from just inside the penalty area after shaking off the tight marking of Javier Mascherano.
Mueller secured the hollow victory in the 74th, driving home from just outside the box. Bastian Schweinsteiger provided the pass and Mueller curled the ball into the bottom right corner.
Barcelona could have earned a draw in stoppage time. But Neymar's squared pass to Messi was slightly off target and the Argentine could not quite connect in time. Messi had a relatively quiet night after scoring twice in the first leg.
"We forced them to take risks and we know what qualities our players have. I am very satisfied with our performance," Luis Enrique said.