Luis Suarez, Lionel Messi and Aleix Vidal scored at the Santiago Bernabeu to send the La Liga leaders nine points clear at the top and 14 ahead of Madrid in fourth.
Zinedine Zidane's side, who had Dani Carvajal sent off, were arguably the stronger side in the first half but were undone by a clinical display from the visitors after the break, who remain unbeaten in all competitions since August's defeat in the Supercopa de Espana.
But who was the standout star in the capital? Who left themselves facing a blue Christmas? We assess the players on show...
Keylor Navas: 6 . Made excellent saves to deny Paulinho and Suarez but allowed Vidal's shot to squirm through his grasp in second-half injury time. That incident alone will not have done much to dampen talk of 2018 bids for Kepa Arrizabalaga and Thibaut Courtois.
Dani Carvajal: 3 . Unadventurous in attack, he was nowhere to be seen when Suarez scored from space on his side of the defence and his superb one-handed save from Paulinho earned a red card, gave Barca a penalty for their second goal and ended the game as a contest.
Sergio Ramos: 6 . Composed enough in the first half but was lucky only to receive a booking for a petulant swing of the arm on Suarez when Madrid were chasing the game.
Raphael Varane: 6 . Had a good first 45 minutes and was not at fault for the goals, with Madrid's defence left exposed by their midfielders at crucial moments.
Marcelo: 4 . Like Carvajal, he was surprisingly subdued going forward aside from one good cross from Karim Benzema, and he failed to stop Sergi Roberto and Messi from setting up goals down the Madrid left.
Luka Modric: 6 . He made more passes (58) than any other Madrid player and was particularly effective in the first half, but his influence waned when Carvajal left them a man down.
Mateo Kovacic: 5 . The only player to complete all of his passes in the first half, he also did well to shackle Lionel Messi. So well, in fact, his decision to follow the Argentine gave Ivan Rakitic the freedom of the midfield in the build-up to the opening goal. Taken off for Gareth Bale.
Casemiro: 5 . Another who performed well in the first half, he vanished without a trace when Rakitic burst through the middle to send Barca on their way and was caught out of position regularly from then on.
Toni Kroos: 6 . The most effective of Madrid's midfielders in an attacking sense, he was unable to do enough to get them back into the game once they were a man down.
Cristiano Ronaldo: 5 . Scored within two minutes from an offside position and swiped at thin air from a really promising position soon afterwards. He was barely involved from then on.
Karim Benzema: 5 . Unlucky to clip the post in the first half but his attacking threat was otherwise negligible. He just doesn't offer enough in key fixtures anymore.
Marc-Andre ter Stegen: 7 . He didn't have a huge amount to do but he made five saves with minimum fuss and his distribution was solid.
Sergi Roberto: 7 . Perhaps a surprising choice ahead of Nelson Semedo, he was really effective down the right and set up Suarez for the opening goal with a well-measured cross.
Gerard Pique: 8 . With seven blocks, two clearances and a cool head in possession, he kept Benzema and Ronaldo deeply frustrated for the majority of the game.
Jordi Alba: 6 . Subdued by his recent standards but worked diligently to keep the wing covered as Andres Iniesta drifted infield. Disciplined and good on the ball.
Paulinho: 7 . The most dangerous attacking player in the first half, as only good saves from Navas denied him the opening goal. His pace and power really do offer Barca an edge in games like this.
Ivan Rakitic: 8 . His surge through midfield gave Barca their breakthrough and he had the best passing accuracy of any starting Barca player (93.4). His recovery from the fringes of the team under Luis Enrique continues.
Sergio Busquets: 9 . Brilliant footwork released Rakitic for that first goal, and he made more passes (85) and won more tackles (four) than his team-mates. A hugely accomplished display from a player who has not always been at his best in 2017.
Andres Iniesta: 7 . Although not quite at the influential level of Clasicos past, he was effective on the ball and helped to contain Madrid during a difficult first half for the visitors.
Lionel Messi: 9 . Quiet in the first half, he was clinical when it mattered, dispatching his penalty with aplomb before beating Marcelo to set up Vidal for the third. That was one of nine chances created by the little maestro on the day.
Luis Suarez: 8 . Took his goal really well and played a big part in the Carvajal red card incident, although he really should have scored before the full-back saved Paulinho's effort. A handful for Varane at times.