It was a former Arsenal player who decided the clasico - just not the one everybody expected. Julio Baptista, whose season on loan at the Emirates Stadium is something both he and Arsenal fans would rather forget, scored the winner against Barcelona as Thierry Henry - an unused substitute - watched from the bench.
Barcelona had no reply to Baptista's goal and the defeat leaves their manager Frank Rijkaard's future in serious doubt. He got just about every decision wrong as Real outmuscled the home side to stride into the new year seven points ahead of their rivals.
"We should have finished them off sooner. I would not call it easy but it was certainly easier than I expected," said Bernd Schuster of his side's win.
Rijkaard put his faith in the club's big players, Ronaldinho and Deco, but the big performances were not forthcoming.
The Brazilian started for the injured Leo Messi and Deco was recalled at the expense of Eidur Gudjohnsen, despite the former Chelsea man's recent good form.
In contrast the Madrid coach, Schuster, resisted the temptation to recall Guti, leaving Baptista in his place in midfield and it won him the game.
A long ball forward on 36 minutes was mistimed by Gabi Milito and gobbled up by Ruud Van Nistelrooy. The Dutchman sprayed it wide to his left and the on-rushing Baptista,looking a lot more like "The Beast" than he ever did in north London, took one touch to nudge it just inside the area before smashing it into Victor Valdes' top corner.
It was no more than Madrid deserved. They had come close to opening the scoring through Pepe, who headed straight at Valdes from a Wesley Sneijder free-kick, as early as the 12th minute.
The defender then saved his side at the opposite end taking the ball off Samuel Eto'o's toe as the striker shaped to shoot. Eto'o, and Andres Iniesta both troubled Iker Casillas in the first 45 minutes but Madrid posed a constant threat on the break. Rijkaard made no changes at half-time and the home side continued to get no change out of Real's defence. Ronaldinho's pass went straight through to Casillas, Eto'o blasted wide and Iniesta shot straight at the keeper.
On the break Real were threatening, with Robinho having claims for a penalty turned down and Sergio Ramos' effort just kept out by Valdes at his near post.
On the hour mark Rijkaard withdrew a tired looking Deco and threw on another striker in Giovani Dos Santos. But it was still Madrid who looked more likely to score and with the game slipping away from Barcelona, Henry joined Bojan Krkic on the touchline to warm up as Rijkaard deliberated over his final change.
He had had been forced to switch the injured Carles Puyol for Gianluca Zambrotta earlier and so was left with one more card to play and it was 17-year-old Bojan who got stripped, not Henry. The youngster replaced the midfielder Xavi with 10 minutes left and immediately tested Casillas with a shot from long range that forced a corner. He should have got on the end of the resulting kick but Yaya Toure got to the ball first and blasted over.
Bojan gave Madrid more to think about than Ronaldinho and Eto'o had in the previous 80 minutes but it was still too little too late.
Madrid played out the final minutes, although they had to survive a late scare as Barcelona almost snatched a point with their final kick. Eto'o and Toure contrived to miss between them from inside the six-yard box as Real Madrid looked in vain for an offside flag. It would have been a point more than Barcelona deserved.
Barcelona (4-3-3): Valdes; Puyol (Zambrotta, 77), Milito, Marquez, Abidal; Xavi (Krkic, 80), Toure, Deco (Dos Santos, 56); Ronaldinho, Eto'o, Iniesta.
Real Madrid (4-3-3): Casillas; Ramos (Torres, 87), Pepe, Cannavaro, Heinze; Sneijder (Gago, 78), Diarra, Baptista; Robinho (Robben, 84), Van Nistelrooy, Raul.
Referee: M Gonzalez.