Real Madrid will take a slight advantage into their Champions League quarter-final second leg against Atletico Madrid after claiming a 0-0 draw in an enthralling game at the Vicente Calderon.
Atletico goalkeeper Jan Oblak had proved the hero for the home side in the first period with a string of fine stops as the visitors dominated.
But Diego Simeone's team fought their way back into the game as Real Madrid could not keep up the relentless pace of their first-half showing.
However, the game was also notable for some bad-tempered moments, with Atletico striker Mario Mandzukic angry at being left bloodied after a challenge with Sergio Ramos.
Yellow cards for Mario Suarez and Marcelo ensured they would not be taking part in the second leg, leaving both managers with changes to make at the Bernabeu next week.
But any thoughts of Carlo Ancelotti and Real Madrid taking anything for granted will be dispelled by the fact Atletico have still not been beaten by their neighbours in seven encounters already this season.
Gareth Bale returned to the Real Madrid starting lineup along with James Rodriguez. Sami Khedira was named on the bench, but there was no place in the squad for Javier Hernandez despite his fine form in the weekend win over Eibar.
There were no surprises in the Atletico side with Mario Mandzukic shrugging off an injury to take his place in the starting XI alongside Antoine Griezmann, with Fernando Torres on the bench.
The first strike on goal came from an unlikely source with Dani Carvajal testing Oblak, but the Atletico goalkeeper needed to be quick off his line in the fourth minute to block a Bale effort after the Wales international had been set clear on goal.
Ronaldo entered the game in the ninth minute with a long-range free-kick after Mandzukic fouled Luka Modric, but Oblak was behind the ball all the way.
Marcelo brought down Arda Turan on the right flank to give Koke the chance to send over a dangerous free-kick, but there were no takers inside the Real area.
It was a frenetic match in the opening period, particularly with the visitors in relentless mood, but Bale's miss represented the only clear-cut opportunity for either side.
Bale forced a great save from Oblak with a long-ranger which bounced just in front of the Slovenian, but there was no Real player ready to pounce on the loose ball after the goalkeeper's parry.
Oblak was once more the hero for Atletico in the 36th minute when he got down well to deny a fine curling effort from James.
Another stop from Oblak thwarted a dangerous James ball into the area before Karim Benzema headed over from in front of goal.
At the other end, Griezmann sent a glancing header just over from a Guilherme Siqueira cross and left Ramos floored as the half came to a close.
There was some controversy early in the second period when Mandzukic was left bloodied in a challenge with Ramos. The former Bayern Munich striker was angered by the collision and needed calming on the sidelines as he received treatment.
Almost immediately after returning to the action, Mandzukic was shown a yellow card for swinging his arm at Raphael Varane in an aerial duel.
Real Madrid were clearly not going to keep up the pace of their first-half showing, and Atletico stepped up to make the second period a more matched affair.
The temperature of the tie was not on such an even keel, though, with a number of full-blooded challenges going unpunished by the referee, and Carvajal was lucky not to be seen when he sent a punch into Mandzukic's chest on the hour mark.
Mario Suarez smuggled a chance off the feet of Ronaldo in the 69th minute, although Benzema should have taken the chance for himself after great work by Marcelo down the left.
Mandzukic was perhaps fortunate not to receive a second yellow in the 71st minute after his arm was raised in a challenge with Carvajal.
The visitors made their first change in the 76th minute when Isco replaced Benzema before, surprisingly, Simeone brought off Griezmann for Raul Garcia when Mandzukic might have been the better option to remove from the action.
Ramos and Raul Garcia both went into the notebook after clashing in the 79th minute, and a red seemed inevitable before the game was done.
Arda Turan produced a superb run into the area moments later, and Varane needed to be alert to cut out his pass to Koke.
That would have been Koke's last touch before the midfielder left the field for Torres with seven minutes remaining.
Suarez was also shown a yellow card in the 84th minute, which ruled him out of the second leg at the Bernabeu next week as Alvaro Arbeloa came in for Carvajal.
Torres did well as he broke into the Real area in the 88th minute, but Ramos checked the run of the former Chelsea striker.
Marcelo was cautioned after an aerial challenge with Torres, leaving him suspended for the second leg next week.
Atletico appealed for a penalty in the closing stages as Arbeloa blocked a Mandzukic drive, but replays proved the ball had struck the substitute in the stomach.
But the match was to end goalless with both teams now heading to the Bernabeu with the last four in their sights.
The Real Madrid man missed an early opportunity and was never quite in the game in the first half, but a long-range effort to force Oblak into a good save showed promise. But the former Spurs man failed to build on that effort after the interval and did not make an impact.
The Atletico Madrid goalkeeper was the hero for the home side in the first half as he produced six great saves to deny the visitors. Chosen ahead of fit-again No. 1 Miguel Angel Moya, Oblak did not let Diego Simeone down.
The Real Madrid defender was the scourge of Atletico in the Champions League final last season and was a driving force for Los Blancos throughout the game. He played a vital role in maintaining the pressure on Atletico from the back while making his tackles count.