Cristiano Ronaldo’s late goal gave 10-man Real Madrid victory in El Clasico and ended La Liga leaders Barcelona’s 39-match unbeaten run.
Gerard Pique’s powerful downward header from a corner had given Barca a 56th-minute lead after a tense first half.
Karim Benzema’s brilliant scissor kick made it 1-1, before Gareth Bale had a goal harshly ruled out for a push.
After Real captain Sergio Ramos was dismissed for receiving two bookings, Ronaldo’s superb finish won the game.
Karim Benzema has 21 La Liga goals for the season – eight behind leading scorer Ronaldo
Ronaldo’s winner will undoubtedly grab the headlines, particularly as it has helped third-placed Real salvage some pride from a poor season to date, but the balance of the side was crucial to the victory.
Casemiro’s influence in breaking up Barcelona’s attacks – and ensuring that Lionel Messi, Luis Suarez and Neymar were frustrated – was crucial.
Real’s front trio of Benzema, Gareth Bale and Ronaldo, nicknamed the BBC, played their part in the win, though.
Benzema recovered from a bad first-half miss to score acrobatically from Toni Kroos’ deflected cross, while Bale could count himself unfortunate to have a goal ruled out when he headed in Ronaldo’s chip, with the officials judging that he had pushed Jordi Alba.
Ronaldo, having had little impact on the match until the closing stages, grabbed his 42nd goal of the season late on, chesting down Bale’s cross at the far post before driving a shot between the legs of goalkeeper Claudio Bravo.