Real Madrid fell 14 points behind Barcelona at the top of La Liga after they crumbled to a 3-0 defeat in the Clasico on Saturday.
Madrid had a goal disallowed and hit the post in a dominant first half, but Barca came out fighting after the restart and quickly took the lead through Luis Suarez, before Dani Carvajal's red card opened the floodgates for Lionel Messi and Aleix Vidal to wrap up another famous victory at the Santiago Bernabeu.
Mateo Kovacic surprisingly replaced Isco as Madrid’s No 10, for what was his first start of the season in La Liga, having only recently come back from a knee injury, while Cristiano Ronaldo overcame a calf strain.
Barca, on the other hand, were unchanged from last weekend as Sergi Roberto once more ousted Nelson Semedo at right-back and Paulinho stayed on behind strikers Lionel Messi and Luis Suarez.
The two heavyweights had already locked horns in the International Champions Cup and Supercopa during preseason, with the Catalans winning the former and Los Blancos going on to thrash their arch-rivals 5-1 over two legs.
Los Merengues flew out the traps with the high press and quickly had the ball in Barca’s net, but Ronaldo was offside when he headed in from point-blank range.
However, they had Keylor Navas to thank after the goalkeeper tipped Paulinho’s volley over the bar, the Brazilian having ghosted in behind with a late run.
Ronaldo then powered down the left and set himself up for the shot, but his angled finish across Marc-Andre ter Stegen was deflected wide of the far post by the German's knee.
Another chance fell to Paulinho, who peeled off his marker and sent a header on target, but Keylor just about scurried over to push the ball away.
Madrid would ultimately regret not making their control count, especially when Karim Benzema’s downward header clipped the post on the stroke of half-time.
The game turned 360 degrees in the second half as Sergio Busquets delightfully set off Ivan Rakitic, who drove forward unopposed before laying off Sergi Roberto, the midfielder expertly squaring for Suarez to finish off from close range.
Madrid lost the ball in midfield again moments later, allowing the visitors to break once more and Messi to thread through Suarez, but the No 9 slammed his shot into side-netting.
Sergio Ramos risked more than a yellow card when he unnecessarily threw his arm over Suarez’s shoulder and caught his neck, but Carvajal did see a straight red for a deliberate handball to stop Paulinho’s rebound from going in.
Messi stepped up and sent Keylor the wrong way from the penalty spot, turning the Bernabeu into a cauldron of jeers.
Nonetheless, Barca still needed Ter Stegen to stop Gareth Bale’s finish from close range and Ramos from beating him at his near post.
Los Merengues’ reaction was short-lived, however, and Nelson Semedo suddenly surged clear down the right, getting in behind Raphael Varane, yet Keylor’s leg prevented his low finish from nestling into the back of the net.
Andre Gomes should’ve done better when he was completely unmarked to Messi’s left in the Madrid box, the midfielder failing to keep his shot down, but Aleix Vidal had no such problems, squirming a low shot past Keylor deep in stoppage time.
The result also marked the first time that Ernesto Valverde’s side had won three straight trips to the Bernabeu in the League.
Real Madrid 0-3 Barcelona
Carvajal sent off 63 (RM) Suarez 54, Messi pen 64, Vidal 90 (B)
Real Madrid: Keylor; Carvajal, Varane, Ramos, Marcelo; Modric, Casemiro (Asensio 72), Kroos; Kovacic (Bale 72); Benzema (Nacho 66), Ronaldo
Barcelona: Ter Stegen; Sergi Roberto (Vidal 90), Pique, Vermaelen, Alba; Rakitic, Busquets, Iniesta (Semedo 77); Paulinho (Gomes 84); Messi, Suarez
Referee: Sanchez Martinez