After the drama of Luca Toni’s 120th minute equaliser which sealed a 3-3 draw in Getafe in the quarter-finals to put the Germans into the last four, Bayern will now have their work cut out at the Russian champions next Thursday.
Bayern, without suspended Italian striker Toni who has scored 10 UEFA Cup goals in the campaign so far including the two crucial efforts in extra time in Getafe, went ahead on 18 minutes when midfielder Ze Roberto was fouled in the penalty area by St Petersburg’s Dutch midfielder Fernando Ricksen.
After his first effort was saved, Ribery smashed home the re-bound to give his side the lead over the Russian champions, who humiliated Bayer Leverkusen 4-1 at home in the quarter-finals.
But the Russians were back on level terms on the hour mark when midfielder Viktor Fayzulin whipped in a cross and Lucio headed the ball past his own goalkeeper Oliver Kahn.
Kahn made way for Bayern’s reserve goalkeeper Michael Rensing on 66 minutes and his forlorn figure trudging off the pitch summed up the home side’s mood.
Lucio went close on 78 minutes but his effort with a fierce drive, but Russian goalkeeper Vyacheslav Malafeev tipped the shot over the cross bar.
Having won Bayern the early penalty, Ze Roberto then kept his side in the game when he cleared a shot off the line after the ball trickled through Rensing’s legs.
Germany striker Lukas Podolski had a golden chance to snatch the winner in the 90th minute but his shot went just wide of the post.
And the Russians finished the game the stronger to leave Bayern with a huge task in St Petersburg next week.
Kahn (Rensing 67), Jansen, Lucio, Demichelis, Lahm (Kroos 81), Schweinsteiger (Lell 66), Van Bommel, Ze Roberto, Ribery, Klose, Podolski.
Malafeev, Ricksen, Shirokov, Krizanac, Sirl, Denisov, Tymoschuk, Faitzulin, Zyryanov, Arshavin, Pogrebniak.
Lubos Michel (Slovakia).