An own goal by Brazilian Lucio gave Zenit the tie after Frenchman Franck Ribery put Bayern ahead in the first half.
Bayern was without suspended Italian striker Luca Toni, the UEFA Cup's leading scorer this season.
Depleted Rangers, which rarely troubled Fiorentina's well-organized defense, is gunning for four titles. It has already won the Scottish League Cup and has reached the final of the Scottish FA Cup against Queen of the South and resumes its Scottish Premier League race with a match against Celtic on Sunday.
Rangers trails Celtic by two points but has three games in hand and will have to play 10 games in four weeks if it reaches the UEFA Cup final on May 14 in Manchester.