Real leapfrogged Barca into top spot in LaLiga after victory at the Bernabeu.
Karim Benzema ended his goal drought as Real Madrid surged to victory in El Clasico to deepen Barcelona’s woes.
Benzema’s 12th-minute opener – his first goal in six games – and a second from Federico Valverde put the home side firmly in charge and although substitute Ferran Torres reduced the deficit with seven minutes remaining, Rodrygo’s stoppage-time penalty sealed a 3-1 win at the Bernabeu.
Victory saw Real leapfrog the Catalan giants to the top of LaLiga to cap a difficult week for Barca boss Xavi, whose side slipped to the brink of elimination from the Champions League in midweek following a 3-3 draw with Inter Milan at the Nou Camp.
William Carvalho scored twice to help Real Betis to a 3-1 victory over Almeria which lifted them up to fourth.
The Portugal international headed Betis into an early lead and although El Bilal Toure levelled, Borja Iglesias and Carvalho’s second secured the three points.
Goals from Asier Illarramendi and Igor Zubeldia either side of half-time saw Real Sociedad go fifth after a 2-1 win at Celta Vigo.
Iago Aspas had dragged the home side back into the game before Zubeldia struck, but their hopes of a fightback were dashed when Goncalo Paciencia was sent off in stoppage time.
Joselu’s 78th-minute header lifted Espanyol clear of the drop zone following a 1-0 home win over Real Valladolid.