Match ends, Borussia Dortmund 1, Real Madrid 3.
Cristiano Ronaldo scored twice as holders Real Madrid maintained their 100% record in Group H by beating Borussia Dortmund.
The former Manchester United man took his tally to 109 in the competition by converting from Gareth Bale's cutback and lashing in Real's third.
Welshman Bale had opened the scoring with a superb volley, while Pierre-Emerick Aubameyang netted for Dortmund.
The Bundesliga leaders are without a point in the group from two games.
Peter Bosz's side were beaten 3-1 by Tottenham at Wembley in the opening game.
Against the Spaniards, Dortmund looked to the referee for a penalty early in the match when Maximilian Philipp's cross appeared to hit defender Sergio Ramos' arm on the line, but Bjorn Kuipers signalled play on.
Spain defender Ramos could have made the scoreline more emphatic but twice missed with headers, nodding over from Toni Kroos' cross and straight at goalkeeper Roman Burki.
"It was perfect," said Real manager Zinedine Zidane. "It was a great game from us. We started well, the first half was brilliant as was the second. We had some difficult moments after the break, but we played them out.
"I am delighted for Ronaldo and Bale, but the whole side worked hard, everyone was brilliant and it was a tremendous game."
A worrying moment for Real saw Bale hobble off with five minutes remaining, but the ex-Spurs winger was suffering from cramp.
La Liga champions Real come up against Premier League side Tottenham next and boss Mauricio Pochettino said: "It is a big challenge to see if we can compete at this type of level and to be very motivated against the best team in the world. We need to show to ourselves that we can compete at that level."
Elsewhere in the Champions League...
- Match report: Manchester City 2-0 Shakhtar Donetsk
- Match report: Spartak Moscow 1-1 Liverpool
- Match report: Apoel Nicosia 0-3 Tottenham
Former Liverpool winger Ryan Babel was on target for Turkish champions Besiktas, who made it two wins from two in Group H by beating RB Leipzig 2-0. The match was held up for 10 minutes in the second half because of floodlight failure.
In a repeat of the 2004 final, former Watford defender Miguel Layun scored as Porto defeated last season's semi-finalists Monaco 3-0.
- 36ToprakBooked at 52mins
- 15ToljanSubstituted forDahoudat 60'minutes
- 8SahinSubstituted forWeiglat 60'minutesBooked at 63mins
- 10GötzeSubstituted forPulisicat 76'minutes
- 2CarvajalBooked at 39mins
- 10ModricBooked at 40minsSubstituted forCeballosat 90+1'minutes
- 22IscoSubstituted forAsensioat 76'minutes
- 11BaleBooked at 29minsSubstituted forVázquezat 85'minutes
- 7Cristiano Ronaldo
- Björn Kuipers
- Shots on Target
Second Half ends, Borussia Dortmund 1, Real Madrid 3.
Attempt blocked. Sokratis (Borussia Dortmund) right footed shot from outside the box is blocked. Assisted by Gonzalo Castro.
Attempt blocked. Mahmoud Dahoud (Borussia Dortmund) left footed shot from outside the box is blocked. Assisted by Christian Pulisic.
Attempt saved. Sergio Ramos (Real Madrid) header from the centre of the box is saved in the bottom left corner. Assisted by Toni Kroos with a cross.
Substitution, Real Madrid. Dani Ceballos replaces Luka Modric.
Corner, Real Madrid. Conceded by Mahmoud Dahoud.
Corner, Real Madrid. Conceded by Lukasz Piszczek.
Attempt blocked. Mahmoud Dahoud (Borussia Dortmund) right footed shot from outside the box is blocked.
Attempt saved. Marco Asensio (Real Madrid) left footed shot from the centre of the box is saved in the centre of the goal. Assisted by Lucas Vázquez.
Attempt missed. Lukasz Piszczek (Borussia Dortmund) header from outside the box misses to the left.
Offside, Real Madrid. Nacho tries a through ball, but Marco Asensio is caught offside.
Delay over. They are ready to continue.
Substitution, Real Madrid. Lucas Vázquez replaces Gareth Bale.
Delay in match Gareth Bale (Real Madrid) because of an injury.
Corner, Borussia Dortmund. Conceded by Daniel Carvajal.
Ömer Toprak (Borussia Dortmund) wins a free kick in the defensive half.
Foul by Marco Asensio (Real Madrid).
Attempt saved. Pierre-Emerick Aubameyang (Borussia Dortmund) header from the centre of the box is saved in the centre of the goal. Assisted by Andriy Yarmolenko with a cross.
Christian Pulisic (Borussia Dortmund) wins a free kick on the right wing.