The Portuguese star became the first player to score in six straight Clasicos away from home when he picked himself up after being felled by Gerard Pique in the 13th minute and struck a low penalty into the corner past Jose Manuel Pinto.
Ronaldo then doubled the lead when he collected a rebound from a 57th-minute Angel Di Maria effort and stroked the ball into the net with Pinto stranded.
It was his 12th goal in 18 appearances against Barca since joining Real in 2009 and his second double in as many games at a stunned Nou Camp.
Real rubbed salt in the wounds when Raphael Varane, who netted the equaliser in the 1-1 draw in last month's first leg at the Bernabeu, rose above the defence at a 68th-minute corner to send a header into the net off the bar.
Jordi Alba pulled one back in the 89th minute, but it was far too late for Barca.