The match began at a slow pace on Saturday. Barcelona created the first opportunity of the fixture through Anthony Gordon.
Real Madrid took the lead four minutes before halftime. Yan Diomande delivered a low cross into the penalty area.
Barcelona defender Gerard Martin attempted a clearance. The ball struck Kylian Mbappe and deflected past the goalkeeper into the net.
Mbappe later hit the goalpost and Diomande narrowly missed another chance as Real Madrid finished the first half with strong momentum.
Barcelona equalized 16 minutes into the second half. Captain Raphinha collected a pass from Pedri before firing a shot through Jude Bellingham’s legs into the far corner.
Martin nearly made amends for his earlier error, but Real goalkeeper Andriy Lunin produced a superb one-handed save to deny him. Lunin started the fixture in place of Thibaut Courtois, who was ruled out through illness.
The match appeared destined for a draw as the clock wound down. Bellingham produced a piece of skill in midfield to launch a decisive attacking sequence.
Substitute Eduardo Camavinga carried the ball forward. He squared it to Mbappe, who finished into an unguarded net in the 87th minute.
The result left Barcelona at the top of the league table with 25 points. They sit two points ahead of Atletico Madrid and three clear of Real Madrid.
Barcelona had entered the fixture aiming to set a new record for consecutive victories at the start of a Spanish top-flight season. Hansi Flick’s side failed to surpass the mark of nine straight wins established by Real Madrid in the 1968-69 campaign.
The win edged Real Madrid ahead in the all-time El Clasico head-to-head record by a single victory. The teams had previously been level at 106 wins apiece, alongside 52 draws. Real Madrid have now scored 446 goals in the fixture, compared to Barcelona’s 442.
