(CNN) -- Cristiano Ronaldo scored a hat-trick as Real Madrid took control of the Champions League "Group of Death" with a 4-1 rout of Ajax in Amsterdam Wednesday.
It was their second successive win in Group D to lead the way from Borussia Dortmund, who have four points after they drew 1-1 at Manchester City.
Ronaldo warmed up for the Clasico clash with Barcelona at the weekend by with some expert finishing, converting Karim Benzema's cross for the opener just before the break.
Benzema added a second in the 48th minute with a superb overhead kick before Dutch champions Ajax cut the lead on 56 minutes when Niklas Moisander headed home.
But Ronaldo curled home a third in the 79th minute and then completed his first hat-trick in the competition -- his second in a week -- with an impudent chip.
English champions Manchester City looked set for their second straight defeat in the competition when they trailed 1-0 to Dortmund late in the game at the Etihad Stadium.
But Sergio Aguero's hooked shot hit Neven Subotic's outstretched arm and a hotly disputed penalty was given.
Mario Balotelli scored in his customary casual style from the spot to salvage a point for Roberto Mancini's men.
They had trailed to a fine goal by Marco Reus on the hour mark and it took a string of incredible saves from England goalkeeper Joe Hart and a glaring miss from Robert Lewandowski to deny the German champions a deserved win.
"I think that Joe saved us. He did very, very well," Mancini told Sky Sports after the match.
"Today we deserved to concede three or four goals. We didn't play well. We didn't play well because Borussia Dortmund played better than us.
Real's Spanish counterparts Malaga also continued their impressive introduction to the Champions League by winning 3-0 at Anderlecht to top Group C.
Eliseu scored twice and Joaquin converted a first half penalty as they dominated in Belgium for a second straight victory in the group.
Earlier, AC Milan won a dramatic five-goal encounter in St Petersburg against Zenit.
An own goal by Tomas Hubocan gave the Italian giants victory after they had been pegged back, having taken a two-goal lead.
Urby Emanuelson with a deflected free kick and Stephan El Shaarawy scored for the visitors in the space of three minutes.
But the home side hit back and after a string of superb saves by Milan goalkeeper Christian Abbiati, Brazilian Hulk reduced the deficit just before halftime.
Roman Shirokov headed home Hulk's corner to level just after the break but Hubocan helped home a weak effort by Giampaolo Pazzini to leave his team pointless after two games.
While Manchester City struggled, their EPL rivals Arsenal made it two wins from two in Group B with a 3-1 home victory over Olympiakos of Greece.
Gervinho continued his recent scoring run with the opener for the Gunners, but Kostas Mitroglou glanced home an equalizer before halftime.
Lukas Podolski put Arsenal back ahead in the 56th minute before Aaron Ramsey rounded off the victory in injury time.
Schalke were denied their second win in the group as 10-man Montpellier scored a 90th-minute equalizer.
Striker Souleymane Camara stuck in the 90th minute to earn a 2-2 draw for the French visitors.
Karim Ait-Fana had put them ahead early on before the Royal Blues hit back through teenager Julia Draxler.
Schalke looked headed for victory as Garry Bocaly fouled Draxler in the penalty area and was shown a red card in conceding the spot kick.
Klaas-Jan Huntelaar converted the penalty before Montpellier leveled through Camara's curling shot.
In Group A, an 83rd-minute goal by James Rodriguez gave Porto a 1-0 home win over big spending Paris Saint-Germain.
The result leaves Porto three points clear of PSG, who are tied on three points with Dynamo Kiev after the Ukrainians beat Dinamo Zagreb 2-0.