End to end from the start, it was a match that swung first one way then the other, right through to the final five seconds when Barcelona and Lionel Messi snatched an extraordinary victory and so opened up a title race that appeared to be over.
Madrid have led Barcelona for all but a couple of weeks since October, and came into this match three points ahead with a game in hand. Barcelona had to win this match to save their season, with only the Copa del Rey offering a small consolation prize.
In front of a packed Bernabeu their task became all the more mountainous when they went a goal down in the 28th minute. Somehow their usually crisp passing seemed to have deserted them.
Madrid had already had four good chances to go ahead. Messi was playing with a mouthful of wadding after being struck in the face by Marcelo’s elbow.
Then suddenly Barcelona seemed to find their rhythm, with the ball passing like quicksilver from Sergio Busquets to Ivan Rakitic to Messi, streaking into the penalty area and finishing superbly past Keylor Navas.
It was a wonderful goal, and a historic one, putting Messi one goal ahead of Alfredo Di Stefano at the top of the Clasico scorers’ list.
Madrid were rocked back on their heels, might have conceded a second, and might also have lost their midfield enforcer Casemiro, who for the second match running was very lucky to escape a second yellow card.
When the bell rang for round two it was Madrid who came out swinging, as at the start of the contest, but then each goalkeeper seemed to be competing for the man of the match award as first Marc Ter Stegen, then Navas, then again Ter Stegen pulled off dazzling saves.
Eighteen minutes left. Almost out of nothing Rakitic produced a dazzling goal and five minutes later Sergio Ramos was on his way to the dressing room after a crazy two-footed assault on Barcelona’s tormentor-in-chief.
At 2-1, with Messi running the show, Barcelona should have been secure, but somehow it was Madrid who took heart in adversity, spurred on by their baying crowd, pinning Barcelona back and then equalising through James Rodriguez five minutes from time.
That should have been that, that seemed to be that. Except that Madrid were still coming forward, still looking for the knock out blow.
And Barcelona, seemingly resigned to their fate, somehow summoned up the energy for one last counter, set up by Sergi Roberto’s heroic run from defence and finished by Messi’s curling shot from just inside the aread.
It was his 500th goal for his club, and none has been more dramatic or potentially as devastating.
As the final whistle went and the Madrid players collapsed on the turf, Messi stood alone, holding his shirt aloft in defiance and crossing himself in the midst of a stunned Bernabeu: An image that is surely destined to become a Catalan icon.
Defiance does not necessarily win titles, however.
Barcelona now have a chance, but need to win their five remaining games, starting with a home game against Osasuna tomorrow night.
That should be a formality — Osasuna are all but relegated — but then comes the derby at Espanyol followed by a match against Villarreal, who are competing for a place in the Europa League next season.
Madrid have six games to play, plus the small matter of their Champions League showdown against Atletico.
A tantalising double could await them: They last won the league and the European crown 59 years ago. But their game in hand is away at Celta de Vigo (who meet Manchester United in the Europa League) and their final match is also away, against Malaga, who have already beaten Barcelona.
Barcelona have the luxury of being able to focus. Madrid have to regroup. They play Deportivo La Coruna tomorrow night, which ought to be straightforward. But judging by Sunday’s drama, nothing is now a given.