Munich - Bayern Munich left it late to beat a dogged 10-man Florentina with a controversial last-minute goal to hand the German giants a 2-1 win, making it 13 in a row in all competitions.
German international striker Miroslav Klose headed home in the 89th minute after the ball went loose from a long distance shot from Dutch international Arjen Robben, but he appeared to be in an offside position.
The strike gave the Bundesliga outfit a slender advantage for when the two sides head to Florence for the second leg on March 9, with the Italians holding a precious away goal.
Earlier in the second half, Florentina had been reduced to 10 men when Massimo Gobbi was handed a straight red card for a blatant elbow in Robben's throat.
But Bayern's defensive frailties had gifted the Italians a goal only five minutes after the restart.
The German giants failed to clear a corner and Fiorentina's Danish international defender Per Kroldrup pounced in the ensuing goal-mouth scramble, toe-poking the ball home from close range.
Bayern, brimming with confidence after an impressive run of 12 straight wins, took the lead on the stroke of half-time through a Robben penalty.
Three minutes into injury time at the end of the first-half, Bayern's French star Franck Ribery was unceremoniously upended in the area by Cesare Natali.
Striker Mario Gomez slotted the ball home, but to Bayern's disgust, the referee had already blown for a penalty.
But Robben made no mistake from the spot, sending Fiorentina goalkeeper Sebastien Frey the wrong way for his sixth goal in as many games but his first in this season's Champions League campaign.
The penalty brought an end to a largely frustrating first half for both sides as Bayern struggled to break down a well-organised Italian defence.
Bayern had shown their attacking intentions from the kick-off, a long ball finding Robben in space on the right, whose pull-back into the box just evaded Gomez with only 15 seconds on the clock.
But after this early foray into the Fiorentina box, neither goalkeeper was seriously tested in an uninspiring first half.
With the score at 1-1, Bayern coach Louis van Gaal rang the changes, pulled off Gomez and Thomas Mueller and brought on Klose and Croatia's Ivica Olic.
However, despite numerous chances created by Bayern's potent attacking force in a hectic second half, no one was able to deliver a telling blow until the very last minute, leaving the four-times European champions with plenty to do in Florence.
Bayern came into the game as clear favourites on the back of their exceptional run of form that has seen them catapulted to joint top of the league and into the semi-finals of the German Cup.
In contrast, Fiorentina's form before their visit to Munich had been patchy, with five straight games without a win in Serie A, slumping to a disappointing 11th place in the league.
Injuries and suspensions also hampered Fiorentina's preparations, with star Romanian striker Adrian Mutu out of action after failing drugs tests and defender Alessandro Gamberini dislocating his shoulder.
Bayern, on the other hand, welcomed back Ribery and Klose from injury as they remained in the hunt for their 22nd German league title and their fifth triumph in Europe's top club competition.