The sides were even for much of the game with chances at both ends but it was David Alaba who opened the scoring.
Barca had the chance to open the scoring before Alaba’s strike when Sergino Dest, starting in a more advanced role, somehow blazed the ball over the bar from close range.
However, it was Madrid who made the most of their shots on goal with Alaba breaking the deadlock on 32 minutes.
Ancelotti’s side countered after Memphis Depay was dispossessed. Vinicius Junior and Rodrygo were both involved in the build-up before the ball found its way to Alaba who struck it past Marc-Andre ter Stegen and into the top corner.
Madrid played a safe game in the second half, slowing down play and frustrating Barcelona. The tactic worked as Ronald Koeman’s side were unable to find an opening.
Lucas Vazquez made the win safe with a close-range finish on 93 minutes after Madrid caught Barca on the counter attack.
Sergio Aguero pulled one back for Barcelona in the sixth minute of added time with a close range finish and Dest assisting. The goal is his first for Barcelona.
The loss is Koeman’s third El Clasico defeat in a row.