Raul put the home side ahead after pouncing on a dreadful blunder by Milan goalkeeper Dida, but Andrea Pirlo (62nd minute) and Alexandre Pato (66th) turned the match around.

Madrid substitute Royston Drenthe made it 2-2 after 76 minutes but Pato's second two minutes from time sealed a memorable win.

Also in Group C, a moment of quality from Gabriel Heinze settled a poor contest between FC Zurich and Marseille, Heinze volleying home after 69 minutes to give the visitors a 1-0 win.

Marseille had Laurent Bonnart sent off for a second yellow card in stoppage time.

Michael Ciani scored at both ends and Bordeaux missed two penalties as the French champion leapfrogged Bayern Munich to move to the top of Group A with a 2-1 win.

Ciani put Bayern ahead with an own goal in the sixth minute before making amends with a fine equaliser in the 29th minute.

Bayern were was reduced to 10 men when they lost Thomas Muller and Bordeaux's Marc Planus then scored the winner in the 41st minute.

Bordeaux could even afford to miss two penalties with Hans-Jorg Butt saving from both Yoann Gourcuff and Jussie, while the visitors ended the game with only nine men as Daniel van Buyten was sent off for the foul which led to the second penalty in the 88th minute.

Elsewhere in the group, Juventus made life hard but held on to defeat 10-man Maccabi Haifa 1-0.

Giorgio Chiellini's header early in the second half was enough to hand the Bianconeri all three points in Turin.

Chelsea put themselves on the brink of qualification from Group D with a comfortable 4-0 victory over Atletico Madrid.

A goal in each half from Ivory Coast international Salomon Kalou, a fine drive from Frank Lampard and an own goal from Luis Perea maintained Chelsea's 100 percent record.

Porto are three points behind Chelsea after coming from behind to beat Apoel Nicosia 2-1, Hulk scoring twice - one a penalty - after an own goal from Alvaro Perreira gifted the visitors the lead.

In the early evening kick-off, Antonio Valencia struck a late winner as Manchester United also maintained their 100 percent record in Group B at the expense of CSKA Moscow.

The other Group B game between Wolfsburg and Besiktas finished in a goalless, yet entertaining, draw.

Real Madrid 2 (Raul 19, Drenthe 76)
AC Milan 3
(Pirlo 62, Pato 66, 88)

CSKA Moscow 0
Manchester United 1
(Valencia 86)

Chelsea 4 (Kalou 41, 52, Lampard 69, Perea 90og)
Atletico Madrid 0

Bordeaux 2 (Ciani 29, Altintop 40og)
Bayern Munich 1
(Ciani 6og)

Juventus 1 (Chiellini 47)
Maccabi Haifa 0

VfL Wolfsburg 0
Besiktas 0

FC Zurich 0
Marseille 1
(Heinze 69)

FC Porto 2 (Hulk 33, 48p)
Apoel Nicosia 1
(Pereira 21og)