Bayern Munich left it late to beat a dogged 10-man Fiorentina side 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 handed the Bundesliga outfit a slender advantage for when the two sides head to Florence for the second leg on 9 March, but the Italians will take consolation from their precious away goal.
After the game, Klose admitted that he was offside, saying: "I haven't seen the replay but it felt like I was offside." Shown the replay, he acknowledged that the goal should not have been given. Bayern Munich president Karl-Heinz Rummenigge also acknowledged his team's good fortune, but said they would head to Florence full of confidence. "We have won. We can be happy and we can fly with optimism to Florence," he said. "Yes, it was offside ... we were lucky to get such a goal, but it was deserved," he added.
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 to Robben's throat. But Bayern's defensive frailties had gifted the Italians a goal only five minutes after the restart when they failed to clear a corner and Fiorentina's Danish international defender Per Kroldrup pounced in the ensuing goal-mouth scramble to poke 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. The chance came three minutes into injury time at the end of the first-half as 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 shouts, 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 directly from the kick-off as a long ball found Robben in space on the right, but his cross 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, they were unable to deliver a telling blow until the very last minute, leaving the four-time 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 a 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.