Though both Real Madrid and Atletico really went for the win in the Madrid derby, goals were the only thing that was missing in a pulsating clash.
Real came out of the blocks like a team possessed, and it was nearly a minute and a half into the game before an Atletico player touched the ball, keeper Jan Oblak.
A super passage of play from the visitors saw the first shot on goal inside three minutes as Saul stung the fingers of Thibaut Courtois.
Antoine Griezmann then tried his luck with an ambitious overhead kick as Real found it hard to contain Atleti’s slick passing game.
The action was end to end and spaces appeared as early as the seventh minute for either side to exploit.
Gareth Bale began to have an influence on proceedings but was forced wide by Diego Godin as he looked to give Real an early advantage.
The Welshman switched wings with Marco Asensio three times in the first 10 minutes, Julen Lopetegui doing his level best to out-fox opposite number Diego Simeone in the tactical battle.
Thomas Lemar was lively for the visitors and with Sergio Ramos involved, and getting a bloodied eye for his trouble, the battle was heating up nicely.
On 17 minutes, Griezmann was sent away by Koke, with no Real defender in sight, but he was unable to beat Courtois in a one-on-one as he came into goalscoring range.
Bale was left unmarked at the back post as Toni Kroos arrowed in a free kick a few minutes later, but his attempt missed the far post.
Karim Benzema had been quiet for much of the game and should’ve put the hosts again just before the half hour.
Real were beginning to turn the screw on their opponents, but the Frenchman fluffed his lines when he was about to pull the trigger.
In fact, Benzema almost scored at the wrong end when mistiming his clearance from a corner and sending the ball just over his own crossbar.
The intensity levels hadn’t let up and the spectacle was certainly living up to its billing.
Just like his colleague Griezmann earlier in the half, Diego Costa beat the offside trap set by Real’s high line as the clock ticked towards half-time, but once again Courtois was equal to the finish.
A mistake by Jan Oblak was nearly punished on 41 with no real danger at all.
Marco Asensio had overhit a ball but raced towards Oblak to try and put him off.
With plenty of time, the Slovenian inexplicably played it straight to the Real forward, only to get lucky with the ricochet which fell straight back to him.
Still goalless at the break, there was nothing to split the sides.
Bale was replaced by Dani Ceballos after sustaining an injury, and within two minutes of the restart, Casemiro had the first real chance but the Brazilian’s wild effort was way over.
A noticeable relaxation of the intensity shown throughout the first 45 could be seen, as both sides appeared to take a breather in order to conserve energy for later in proceedings.
Angel Correa’s substitution for Thomas Lemar just before the hour mark paid immediate dividends with the striker rattling Sergio Ramos to the point that the Real captain was handed a yellow card.
What that meant was he would have to watch his step for the rest of the game, diluting his battling qualities to an extent.
Ceballos was busy and had offered something to Real that they’d been missing before his inclusion.
Though Atleti looked comfortable for the most part, when the young Real Madrid midfielder was on the ball, the Rojiblanocs appeared more nervous.
A remarkable save from Oblak on 65 kept the scores level, but Asensio will be kicking himself that he was unable to beat the custodian from just a few yards out and in acres of space.
Asensio then broke again, showing a clean pair of heels to the Atleti defence, but he was unable to find Benzema who was unmarked in the middle.
Real’s dominance had seen Simeone bring off Diego Costa and stock the midfield with Thomas Partey, meaning that for the final part of the game the visitors would play on the break.
Neat inter-play around the edge of the Atleti box saw a chance carved out for Dani Carvajal on 77, and with nine to play, Lucas Vazquez replaced a tiring Luka Modric, the winger looking to inject some pace into Real’s attacks during the closing moments.
Rodrigo then made way for Nikola Kalinic, suggesting that Simeone still believed that the game was there to be won.
The match had become a high-stakes chess match, with both sides looking for that one move to end their rival’s aspirations.
In a last throw of the dice, Julen Lopetegui threw on Vinicius for his home debut with only three minutes left to play plus injury time.
With the last play of the game, Raphael Varane headed wide, meaning that Barcelona remain top despite not being able to beat Athletic Club earlier in the day.