CRISTIANO RONALDO fired in a rocket to grab a pair of Champions League records.
But it was Lucas Vazquez who netted a winner that rendered Pierre-Emerick Aubameyang’s double in vain, on a night when Borja Mayoral scored his first competition goal.
Los Blancos were already assured of finishing second behind Tottenham in Group H before the game even begun.
But Ronaldo did not want the night off with goals in his sights – and two group-stage records.
His brilliant first-half strike ensured he became the first player in Champions League history to score in all six group matches.
And his ninth competition strike of the campaign also put him level with nemesis Lionel Messi on 60 group-stage goals.
The Portuguese was one of few first-team stars to be picked to start by Zidedine Zidane.
Luka Modric, Karim Benzema, Marco Asensio and Marcelo were named on the bench, with Isco and defenders Sergio Ramos and Raphael Varane starting.
Zidane was left to rue his call to start Varane, with the French defender limping off in the first half.
The French centre-back is now set to miss a clash with Sevilla on Saturday that Ramos is already suspended for.
Mayoral opened the scoring for the hosts when he cooly lifted the ball over Roma Burki on eight minutes.
And Real doubled their lead when Ronaldo arrowed in a stunning angled effort from the corner of the area.
Dortmund were back in it two minutes before the break, when Marcel Schmelzer took advantage of a defensive lapse to cross for Aubameyang to nod home from close range.
And the Gabon hitman had his second just four minutes after half-time when he broke the offside trap, only for Keylor Navas to deny him.
The ball ricocheted back to Aubameyang, who lifted it over the Real keeper for his fourth strike of the group stage.
Ronaldo thought he had won it with a close-range finish from a corner – only to see the offside flag raised.
But Lucas Vazquez did seal the win when he volleyed in a scuffed effort nine minutes from time.