A superb long-range strike from Bayern powerhouse Michael Ballack in the first half was cancelled out by a questionable penalty, and a valuable away goal, stroked in by Andriy Shevchenko on 57 minutes.
Bayern’s substitute keeper Michael Rensing replaced Oliver Kahn, who failed to recover from a bruised thigh suffered in a Bundesliga match on Saturday.
Rensing was hardly tested in the first half as a muted Milan failed to mount a single meaningful attack.
But Rensing had a far busier second period, facing first the penalty and then producing a crucial save to prevent Shevchenko from giving Milan the lead.
Bayern attacked with purpose in the first half as Milan sat back.
When Ballack was inexplicably given space and time by the Milan defence on 23 minutes, he collected the ball and hit a right-footed half volley from well outside the area which flashed past Milan’s goalkeeper Dida.
Within a minute Roy Makaay had a chance to double the lead but the Brazilian international keeper saved smartly from the Dutchman’s volley.
Makaay had a second chance ten minutes before the break but his shot went wide.
Milan emerged with fresh impetus after the break.
When Serginho crossed from the left, the ball struck Bayern’s French defender Valerien Ismael on the arm and a penalty was awarded in what appeared a harsh decision.
Shevchenko coolly sent Rensing the wrong way with the spot kick.
With Bayern on the back foot for the first time in the match, Milan broke away on a counter-attack but Alberto Gilardino curled the ball wide when given a clear chance to secure the lead.
Gennaro Gattuso sparked one flashpoint after another and was eventually booked for tapping Ballack’s leg before the Italian was substituted, though he won’t be able to play in the second leg anyway as the booking ensured he would be suspended.
Milan also finished the match with a substitute keeper after Dida fell awkwardly when catching a corner kick on the hour mark, forcing the Italians to call Australia’s Zeljko Kalac into action.
Yet he had little to do as the second half petered out.
: Rensing, Sagnol, Lucio, Ismael, Lahm, Demichelis, Salihamidzic (Karimi 58), Ze Roberto (Scholl 77), Ballack, Pizarro, Makaay (Guerrero 79).
: Dida (Kalac 69), Stam, Nesta, Kaladze, Serginho, Gattuso (Vogel 85), Pirlo, Seedorf (Jankulovski 90), Kaka, Shevchenko, Gilardino.
: Frank De Bleeckere (Belgium).