Gerard Pique slid Marcelo’s cross into his own net before Lionel Messi levelled with a penalty.
Ronaldo, who was a substitute, restored Real’s lead when he ran from halfway before smashing an effort home.
He was booked for taking off his shirt to celebrate and shown a second yellow shortly after for a dive – before Marco Asensio scored Real’s excellent third.
Ronaldo felt he should have had a penalty when he went down under pressure from Samuel Umtiti, and appeared to shove the referee in the back after he was shown the red card.
Real host Barca in Wednesday’s second leg at 22:00 BST.
Ronaldo’s eventful cameo
Even for a player who has been so prominent in El Clasico contests, the 24 minutes Ronaldo spent on the pitch were unusually eventful.
Having started on the bench, as he did for the Uefa Super Cup win over Manchester United, he was introduced in the 58th minute with his side leading 1-0.
He watched on as Messi levelled the scores before scoring a typically brilliant goal himself, cutting inside and curling home an unstoppable effort from the edge of the box.
To celebrate, he removed his shirt and flexed his muscles, earning himself a booking.
Two minutes later, he tumbled in the box after going shoulder to shoulder with Umtiti, for which he was shown a second yellow card.
Barca had 10 minutes to find another equaliser, but 10-man Real struck again as Asensio added to his growing reputation with a superb strike into the top corner from 25 yards.
The 21-year-old has now scored on his La Liga, Copa del Rey, Champions League, Uefa Super Cup and Spanish Super Cup debuts for Real.
Barca struggle without Neymar
Having broken up their famed ‘MSN’ strike-force through the summer-sale of Neymar to Paris St-Germain for £200m, Barcelona started Gerard Deulofeu in attack alongside Lionel Messi and Luis Suarez.
As his predecessor on the left wing made a goal-scoring start to life in France, former Everton player Deulofeu struggled to make a compelling case to be the Brazilian’s long-term replacement in Spain.
He had one glorious chance to make an impression but wasted it, firing a shot across goal and wide from inside the box. He was replaced by Denis Suarez shortly after.
If Barca have their way, Deulofeu will soon find himself down the pecking order, possibly behind Philippe Coutinho.
The need for attacking reinforcements at the Nou Camp is obvious. Messi and Suarez were lively and combined for the penalty – the Uruguayan winning it, when he tumbled easily under a challenge from Real keeper Keylor Navas, with the Argentine converting.
But elsewhere it is a mix of lesser talent and young potential not yet ready to play such a major role for a side with lofty ambition at home and abroad.
‘I am annoyed’ – what they said
Real Madrid manager Zinedine Zidane: “We played a great game but I am annoyed by Cristiano’s sending-off.
“Perhaps it wasn’t a penalty but the red card is a little harsh. We can’t change it, but we’ll try and make sure he plays on Wednesday.”
Barcelona boss Ernesto Valverde said: “I don’t have the sensation we were as far away from them as the scoreline suggests. They scored three times, but we played well and had our chances.
“They caught us on the counter-attack when it was 1-1 and scored a great goal, and then another one. But it’s not just about getting into the danger zone – it’s about putting your chances away.”