
The Russian champions will meet Glasgow Rangers in the final in Manchester on May 14 after the Scottish side earned a 4-2 penalty shoot-out victory over Italian side Fiorentina.
The match in Florence had finished goalless after extra-time following a 0-0 draw in Glasgow last week.
It is the first time Zenit, coached by Dutchman Dick Advocaat, have reached a major European final.
Bayern's hopes of a seventh European title to go with a likely domestic league and cup double floundered in Petrovsky Stadium in one of the German club's heaviest defeats in Europe.
Zenit, who had beaten fellow Bundesliga side Bayer Leverkusen 4-1 away in the first leg of the previous round, looked sharper throughout.
After goals from Pavel Pogrebnyak in the fourth minute and Konstanin Zyrianov in the 39th, Bayern needed another fightback similar to their quarter-final heroics at Spain's Getafe.
But there was to be no repeat of the drama in Spain where Bayern recovered from a 3-1 deficit in extra-time to draw 3-3 and go through on the away goals rule.
Viktor Fayzulin all but ended their hopes with a header in the 54th to make it 3-0, and Pogrebynak notched his second and Zenit's fourth in the 73rd.
"It was a catastrophic performance. We really had the stuffing knocked out of us," said Bayern coach Ottmar Hitzfeld. Zenit were without several key players included the suspended trio of playmaker Andrei Arshavin, Fernando Ricksen and Radek Sirl, while Hitzfeld had a full strength squad, with Italy striker Luca Toni back from his suspension in the first leg.
The home side got off to a shaky start when Roman Shirokov had to clear off the line from Miroslav Klose in the second minute, but two minutes later the Russians found themselves in front.
After a foul by Lucio outside the area, Pogrebnyak stepped up to crack a left-foot shot through the defensive wall into the middle of the net with Oliver Kahn in goal wrong-footed.
Bayern enjoyed possession without looking incisive, and it was Zenit who looked the more dangerous, ending a good spell of passing with a second goal from Konstanin Zyrianov in the 39th minute.
Alejandro Dominguez provided the telling pass but Zyrianov on the edge of the area found room for himself with a neat feint to advance on Kahn and make no mistake.
Toni saw a shot three minutes after the break tipped over the bar by Vyacheslav Malafeev. But it was Zenit who again demonstrated the greater effectiveness when, in the 54th minute, Anyukov crossed from the right for Viktor Fayzulin to head powerfully past Kahn.
The goalkeeper was again left standing in the 73rd when Dominguez skipped past Philipp Lahm on the right and found Pogrebynak who side-footed the ball into the net from just inside the area.
"It was unbelievable how we played," Advocaat said.
"The most important thing is that we didn't give them much room. We had a lot of respect for Bayern. They are a very good team but today was our day."
The defeat was a sorry European farewell for 39-year-old Kahn who is retiring at the end of the season.
It was also the end of Hitzfeld's hopes of a UEFA Cup title with Bayern to go with a 2001 Champions League trophy before he departs at the end of the season to coach the Swiss national side.
The last time Bayern were beaten 4-0 in Europe was 31 years ago when they lost to Eintracht Frankfurt in the last 16 of the UEFA Cup.
There was a similar heavy defeat in the 1991/92 competition when they were beaten 6-2 by B1903 Copehnagen in a second-round UEFA Cup tie.
Bayern chairman Karl-Heinz Rummenigge said the players were "annoyed and disappointed," but can end the season with their heads held high after "winning two titles" - the cup and almost certainly the Bundesliga.
"We have to recognize that Zenit played a super game," he said.
"Let's not forget that the Russian championship has just started and they are fit and fresh, while our team is now really on its last legs."