The Milan striker Alexandre Pato was controversially denied a winner as Group C's big two shared the points here last night, a result that leaves both sides with work still to do to qualify for the knockout stages.
Karim Benzema put Madrid ahead on 30 minutes when he squeezed a close-range effort under Dida, who had parried a shot from Kaka. Milan, who remain level at the top with Real, equalised 10 minutes before the break through Ronaldinho's thumping penalty after Pepe slid in on Gianluca Zambrotta and was harshly ruled to have handled at close range.
Moments later the home side had the ball in the net again but Pato, who scored twice in Milan's 3-2 win at the Bernabeu last month, had his goal ruled out for what appeared to be either a minor foul or an unlucky handball as he brought down a high pass.
The Milan coach Leonardo was phlegmatic about the decision. "These things happen. I always believe in the good intentions of the referee," he said. "It seemed to me it was a normal goal while for the penalty you could say that it was right to give it."
The visitors had the better of the early exchanges, Benzema going close twice and Gonzalo Higuain also scuffing a presentable opportunity. But Milan improved, with Pato and Massimo Ambrosini going close.
Kaka, who joined Real from Milan in the summer, was given a warm welcome back by the crowd but the Brazilian had another quiet game.
Real's coach Manuel Pellegrini felt his side could have won it late on. "At the end there were a couple of chances to get the three points which we would have deserved," he said.
Milan (4-3-3): Dida; Oddo, Nesta, T Silva, Zambrotta; Pirlo, Seedorf, Ambrosini; Alexandre Pato, Ronaldinho, Borriello (Inzaghi, 79). Substitutes not used: Roma (gk), Kaladze, Gattuso, Huntelaar, Flamini, Abate.
Real Madrid (4-3-3): Casillas; Sergio Ramos, Albiol, Pepe, Arbeloa; L Diarra, Alonso, Kaka; Benzema (Van Nistelrooy, 82), Marcelo, Higuain (Raul, 76). Substitutes not used: Dudek (gk), Gago, M Diarra, Van der Vaart, Granero.
Referee: F Brych (Germany).