Dortmund knocked Real out of the Champions League at the semi-final stage last season, but Carlo Ancelotti's side are on course to exact revenge over the Bundesliga side after sweeping them aside in a clinical first-leg display.
World-record signing Gareth Bale put them in front just two minutes in and Isco doubled their advantage before half-time as Jurgen Klopp's charges had no answer to Real's attacking threat.
Ronaldo then took centre stage after the break, scoring his 14th Champions League goal of another outstanding season to equal the record set by Barcelona forward Lionel Messi two years ago.
Robert Lewandowski scored all four goals when Dortmund beat Madrid 4-1 in the semi-final first leg at the Westfalenstadion last season and Klopp could do with a repeat performance from the Poland striker in the second leg next week when he returns after sitting out the first leg due to suspension.
Left-back Fabio Coentrao made a rare start for Real in the absence of Marcelo (hamstring), while Pierre-Emerick Aubameyang was charged with the considerable task of replacing Dortmund's talismanic striker Lewandowski.
Coach Ancelotti vowed to take the game to the visitors and his positive approach was rewarded when Bale put Real ahead.
Karim Benzema had a big hand in the goal as he picked out Daniel Carvajal and the marauding right-back provided a perfectly weighted pass for the onrushing Bale, who burst into the penalty area before taking a touch then poking the ball past Roman Weidenfeller with his left foot.
Ancelotti urged the Bernabeu faithful to get behind his side after turning on Ronaldo at the weekend and they were on their feet for a second time in the 27th minute when Isco produced a clinical finish from the edge of the box.
Dortmund were struggling to live with the home side and Weidenfeller pulled off another fine save to keep out Bale's dangerous free-kick after midfielder Sebastian Kehl was shown a yellow card that will keep him out of the second leg.
Having struck early in the first half, Bale almost caught Dortmund out again two minutes after the break when he raced into the box but this time a tame finish left-foot finish with the outside of his left foot was saved.
Aubameyang could have made him pay for that miss a minute later, but the Gabon international fired a shot wide of the far post from a tight angle.
Ronaldo then took the game beyond Dortmund with his 45th goal of the season after 54 minutes. Luka Modric was the provider, picking him out in the area, and he rounded Weidenfeller before tucking the ball into the empty net.
Dortmund were still causing problems of their own and it needed a timely block from Pepe to thwart Henrikh Mkhitaryan, then the busy Weidenfeller produced another great stop to deny Benzema.
Bale could have added a fourth goal seven minutes from time, but blazed over the bar after embarking on a trademark run.
Klopp had conceded that Dortmund were underdogs for the tie and they looked every inch that as Real stayed on course to be crowned European champions for a 10th time.
Copyright © 2022 Goal.com All rights reserved.