Real Madrid claimed a thrilling 3-2 victory over Manchester City at the Bernabeu.
Madrid had much the better of the first half, and City had goalkeeper Joe Hart to thank for preserving the deadlock until half-time.
With the hosts continuing to dominate but struggling to find a way through, it was City who opened the scoring, with Edin Dzeko firing home on 68 minutes after Yaya Toure broke away on the counter.
Madrid levelled soon afterwards with a deflected Marcelo strike, but City looked to have won it when Aleksandar Kolarov's free-kick found its way into the corner of the net on 85 minutes.
Madrid would not be beaten, though, and Karim Benzema equalised almost immediately before Cristiano Ronaldo fired home a 90th-minute winner.
In Group D's other game, Borussia Dortmund required a late goal from Robert Lewandowski to secure a 1-0 win over Ajax.
It had appeared that the Bundesliga side would have to settle for a point at home to the group outsiders after Mats Hummels missed a second-half penalty, but Poland striker Lewandowski finally made the breakthrough in the 87th minute to secure a valuable victory.
Arsenal got their campaign off to a winning start with a 2-1 victory at Montpellier.
Arsenal fell behind to the French champions when Thomas Vermaelen brought down Younes Belhanda and the same player stepped up to score from the penalty spot. However, the Gunners hit back quickly, with first Lukas Podolski and then Gervinho scoring to see them into the lead.
Arsenal lived a charmed life in the second half, as Remy Cabella squandered a superb chance - shooting wide after robbing Abou Diaby on the edge of the box. Anthony Mounier found space behind the Arsenal back line but lacked the composure with his finish, while Cabella showed brilliant feet to dink a shot over stand-in goalkeeper Vito Mannone that thudded against the bar.
However, the best chance was passed up by Belhanda with ten minutes remaining. The ball found its way to the Montpellier forward's feet five yards from goal with only Mannone to beat. He set himself but somehow scuffed his shot straight at the Arsenal 'keeper.
The pressure on AC Milan boss Massimiliano Allegri increased as the Serie A giants were held to a 0-0 draw at home to Anderlecht.
Milan have made a poor start to the new season since allowing a number of big-name players to leave the club, and there was no sign of improvement against the Belgians, with the home fans booing their team's tentative performance.
Zlatan Ibrahimovic and Thiago Silva, two of the stars to have departed the San Siro, were on target as Paris Saint-Germain eased to a 4-1 win over Dynamo Kiev.
Ibrahimovic fired home the opener from the penalty spot and Thiago Silva, making his debut, doubled their advantage. Alex then made it 3-0 and, while Miguel Veloso reduced the arrears late on, Javier Pastore completed the rout in injury time.
Malaga, plunged into financial turmoil in the summer, continued their remarkable start to the new season with a 3-0 win over Zenit St Petersburg at La Rosaleda.
Zenit signed Hulk and Axel Witsel to bolster their European hopes for the 2012-13 campaign, but the big-spenders found themselves a goal down inside three minutes when Isco scored a stunning opener.
Javier Saviola extended the hosts' advantage on ten minutes and, after Zenit missed a host of chances, Malaga wrapped up victory 14 minutes from time as Spain Under-21 international Isco scored another long-range effort.
Schalke secured a hard-fought 2-1 victory over Olympiakos.
Benedikt Howedes had headed home the opener shortly before half-time and, after Djamel Abdoun's equaliser, Netherlands striker Klaas Jan Huntelaar delivered the decisive goal.
Porto, the 2004 champions, claimed a 2-0 victory over Croatian side Dinamo Zagreb.
Midfielder Lucho Gonzalez put Porto into the lead four minutes before the break, and Belgium international Steven Defour put the result beyond doubt with a further goal in injury time.