Cristiano Ronaldo struck after a red card for Sergio Ramos to snatch a 2-1 Clasico victory for 10-man Real Madrid over Barcelona in La Liga on Saturday.
Both sets of players and a capacity Camp Nou crowd paid a moving pre-match tribute to the late Johan Cruyff but there was little of the footballing magic the Dutchman made his calling card during a fitful contest in Catalonia.
Lionel Messi was forced to feed off scraps in search of his 500th Barcelona goal, although he drew an excellent save from Keylor Navas before Gerard Pique headed the hosts into a 56th-minute lead.
Karim Benzema showed superb awareness and technique to volley Madrid level and there was justifiable fury from the visitors when Gareth Bale had an 80th-minute header ruled out for an apparent foul on Jordi Alba.
Madrid's burgeoning confidence might have been checked when Ramos' concluded a rash outing with his second booking seven minutes from time, but Ronaldo's 16th goal against Barcelona stunned the Camp Nou masses and handed Luis Enrique's team their first defeat for 24 Liga matches.
Champions Barcelona are six points ahead of Atletico Madrid at the summit with seven matches remaining this season, while Madrid are a point further back, coach Zinedine Zidane having made a convincing pitch for his long-term job prospects at the Santiago Bernabeu.
After Cruyff was honoured with a stadium-spanning mosaic and a minute's silence, Luis Suarez wasted a glorious chance to give Barcelona a 10th-minute lead.
A misjudgement from Madrid captain Ramos, passed fit following a back problem, left Neymar and Suarez tearing towards goal – although the Uruguay star got his feet tangled and failed to convert at the back post when his team-mate squared.