With his back to goal, Ronaldo launched himself into the air to meet Dani Carvajal's chipped ball and produced a perfectly-executed bicycle shot which flew past keeper Gianluigi Buffon and put Real 2-0 ahead.
The goal was greeted by applause even from Juventus fans who only minutes earlier had hounded and insulted Ronaldo when he shot wide.
The Portuguese had got Real off the mark with a third-minute goal, scoring for a record 10th successive Champions League game, and Marcelo was also on target as Juve's five-year unbeaten home record in European competition crumbled.
“When you play against sides like this, you need a little bit of luck and, more than anything else, to meet Ronaldo on a bad night," said Juventus coach Massimiliano Allegri.
"I am disappointed with the third goal because we should have tried to keep it down to 2-0 and then try to achieve something remarkable in Madrid."
Juventus had not lost at home in Europe since Bayern Munich's 2-0 win in April 2013, a 27-match run, but that record was quickly under threat as their usually impregnable defence was split open with nonchalant ease after only three minutes.
Juventus responded well to the setback, launching a series of dangerous attacks, and Real goalkeeper Keylor Navas prevented what seemed a certain goal with a superb point-blank save from Gonzalo Higuain's volley.
Defender Giorgio Chiellini also missed a good chance when he misdirected a header from a corner but Real were always menacing and Toni Kroos thumped a rising shot against the bar from 25 metres.
Juve also began the second half in lively mood but lost their way in a dramatic eight minutes.
Two minutes later, Dybala, booked in the first half for a dive in the penalty area, was given a second yellow card for a clumsy challenge on Carvajal.
Marcelo applied the coup de grace in the 72nd minute as he switched passes with Isco and then Ronaldo before rounding Buffon to score into an empty net.
Ronaldo nearly grabbed a hat-trick and although Juve escaped further damage they face an almost impossible task in next week's return.