Dortmund led 2-0 at the break courtesy of goals from Donyell Malen and Jamie Bynoe-Gittens, but Real Madrid scored five times in the second half, with Antonio Rudiger and Lucas Vazquez registering alongside a Vinicius treble, to secure all three points for the holders of the prestigious trophy.
The result has seen Los Blancos move into ninth position in the Champions League table, boasting six points from three matches, while Dortmund sit fifth despite the setback, also on six points from their three matches.
Here, Sports Mole takes a close look at how each player performed in the Champions League clash, with Real Madrid showing their class after a difficult opening 45 minutes.
Real Madrid player ratings vs. Borussia Dortmund: Mbappe plays his part despite failing to score
GOALKEEPER
Thibaut Courtois- 6/10
Made a big save to deny Maximilian Beier shortly before Real Madrid scored a third, which proved to be a crucial moment in the match. Courtois could do nothing with either Dortmund goal, meanwhile, with the goalkeeper needing better protection.
DEFENCE
Lucas Vazquez - 7/10
Struggled defensively, particularly for Dortmund's second, but he came up with a massive goal to make it 3-2 to the hosts in the 83rd minute, which more than made up for his first-half difficulties.
Eder Militao - 6/10
Certainly one of the best centre-backs in world football, but Militao found it difficult in the first half against a fast and clever Dortmund attack.
Antonio Rudiger - 7/10
Scored Real Madrid's first of the match on the hour, and he was driving the team from a defensive position. The type of character that is needed during difficult moments.
Ferland Mendy - 6/10
Both defences found it difficult on Tuesday evening, and this was not one of Mendy's better performances, but like a number of his teammates, the left-back did improve as the match developed.
MIDFIELD
Federico Valverde - 6/10
Not at his energetic best, with the Uruguay international very quiet in the first half and not too involved in the second, but he has already had plenty of big moments for Real Madrid this season.
Luka Modric - 7/10
Was not at his best in the opening 45 minutes, with Dortmund winning the midfield battle, but his excellent pass into Kylian Mbappe led to Real Madrid levelling the scores at 2-2.
Jude Bellingham - 6/10
Hit the crossbar in the first half and was frustrated for long spells; the Englishman did set up Vinicius for the Brazilian's second of the match, but he was again far from his best for Los Blancos.
ATTACK
Rodrygo - 6/10
Could not get into the match in the first half, but he played his part in the Real Madrid comeback before leaving the field with an apparent injury shortly after the hosts had scored their third.
Kylian Mbappe - 7/10
For long stages, it did appear that it would be a frustrating night for the Frenchman, but he set up Rudiger for Real Madrid's first goal and then played a big part in the second, with the attacker ending the game on a positive note.
Vinicius Junior - 9/10
Only falls short of a 10 due to his struggles in the first half, but it was a simply stunning second-half performance from the Brazilian, who came up with three goals to demonstrate why he is the favourite for the Ballon d'Or.
SUBSTITUTES
Eduardo Camavinga - 7/10
Replaced Modric at 2-2, with Real Madrid looking for more energy in midfield, and the Frenchman played an important role for Los Blancos in the final 20 minutes of the contest.
Aurelien Tchouameni - 6/10
Would have been disappointed not to have started, but he was brought on in the 85th minute of the match and Real Madrid scored two goals while the Frenchman was on the field.
Dani Ceballos - 6/10
Only introduced in the 90th minute, but he was involved in Vinicius' hat-trick goal.
Arda Guler - N/A
Hardly touched the ball in what was a very late cameo for the Turkey international.
Borussia Dortmund player ratings vs. Real Madrid: Bynoe-Gittens, Malen impress for BVB
GOALKEEPER
Gregor Kobel - 6/10
Made some smart saves in the opening half of action but then watched five goals fly past him in the final 30 minutes of action. Desperately needed better protection when the hosts started to move through the gears.
DEFENCE
Ryerson - 6/10
Like a number of his teammates, was strong in the opening half of action, but he was coming under increasing pressure from Vinicius in the second half, which led to his withdrawal in the 76th minute.
Niklas Sule - 6/10
Looked a dominant centre-back in the opening half of action, and he did well against Mbappe for long spells, but the Dortmund defence were pulled all over the pitch in the second period.
Nico Schlotterbeck - 6/10
Made some excellent blocks in the first period, and he played a vital role in making it difficult for Real Madrid, but everything changed after the interval, with Los Blancos refusing to be beaten.
Ramy Bensebaini - 6/10
Can be pleased with his performance against Rodrygo, as the Brazilian was quiet for long spells, but Real Madrid's third of the match came down Bensebaini's side, with Vazquez breaking into the box.
MIDFIELD
Felix Nmecha- 7/10
Was brilliant in the opening half of action, with his energy and use of the ball allowing BVB to cause a lot of problems, but he faded in the second period and was replaced in the 76th minute.
Julian Brandt - 6/10
Started and finished the match at Bernabeu, and he was often neat and tidy in possession of the ball, but the attacker was not able to help his side carry a threat in the second half of action.
Marcel Sabitzer - 6/10
Put in a high-energy performance in the opening half of action, with BVB winning the midfield battle, but he often found himself over-run in the second period of the fixture in the Spanish capital.
ATTACK
Donyell Malen - 8/10
Had an excellent first period, making the breakthrough with a clever finish before turning provider for Dortmund's second, but he was surprisingly replaced during a period when BVB were coming under serious pressure.
Serhou Guirassy - 7/10
Was unable to add to his goal tally for the season, but his excellent assist allowed BVB to make the breakthrough. The forward struggled, though, after both Bynoe-Gittens and Malen were replaced.
Jamie Bynoe-Gittens - 8/10
Became the youngest-ever Englishman to score against Real Madrid in the Champions League with his first-half goal, and it was a very positive performance from the 20-year-old, who was replaced early in the second period.
SUBSTITUTES
Waldemar Anton - 5/10
Anton was brought on in a bid to stop Real Madrid from making a comeback, taking the place of Bynoe-Gittens, but it did not prove to be a successful change from head coach Nuri Sahin.
Pascal Gross - 6/10
Replaced the excellent Malen in the 64th minute, but he was unable to carry the same sort of threat as the Netherlands international, who had caused all sorts of issues in the first period.
Emre Can - 4/10
Was brought on to deal with Vinicius, but he found it incredibly difficult against the Brazilian. Can is a brilliant footballer who has had an excellent career, but this was a very, very tough cameo against a stunning player.
Maximilian Beier - 6/10
Had a big chance to score a third for Dortmund at 2-2, but he was denied by Courtois. The forward was certainly a threat in the latter stages and can be pleased with his contribution on Tuesday night.