It was the first Clasico without Barca icon Lionel Messi or Real legend Sergio Ramos – who both joined Paris St-Germain in the summer – since 2004.
David Alaba started and finished a counter for Real’s first and Lucas Vazquez scored a second in injury time.
Sergio Aguero scored his first Barca goal but it was almost the last kick
Alaba’s goal was the best of the game. The former Bayern Munich defender won the ball from Barca striker Memphis Depay on the edge of his box before starting a counter-attack.
He finished it off by running onto Rodrygo’s pass before slamming a shot across home keeper Marc-Andre ter Stegen into the far corner.
It was his first goal for Real Madrid, who he joined in the summer, on his El Clasico debut.
The final two goals came in injury time with Vazquez tapping in after Marco Asensio’s shot was saved by Ter Stegen.
Substitute Aguero buried Sergino Dest’s cross, in what was only Barcelona’s second shot on target, but the final whistle went seconds later.