City goalkeeper Joe Hart again proved their saviour, producing fine reflex stops from Casemiro and Pepe, while Jese also hit the bar as the visitors upped the tempo in the latter stages.
City held on to give themselves a fighting chance heading into next week's second leg at the Bernabeu although the watching Ronaldo, who unexpectedly failed a fitness test, will hope to feature.
The occasion was a tense one, although there was some amusement on the touchline as Real coach Zinedine Zidane split his trousers.
The drama began before kick-off as Ronaldo, whom Zidane had suggested would be fit after a thigh injury, failed to make the teamsheet.
He was forced to watch from the bench while his Brazilian namesake Ronaldo, a former Real player, looked on from the stands.
The absence of former Manchester United star Ronaldo should have boosted City, as would the sight of their fans waving flags in an impressive pre-game display of support.
City responded well initially with their all-Brazilian central midfield pairing of Fernandinho and Fernando taking an early grip on proceedings.
Even though neither side could muster a shot on target in the opening 45 minutes it was City who were the more positive.
Kevin De Bruyne curled a dangerous ball into the box for Sergio Aguero but Pepe did enough to prevent the Argentinian shooting.
Pepe was booked soon after for taking down a surging De Bruyne on the right and Sergio Ramos was perhaps fortunate to escape a similar fate after fouling Fernandinho in a similar position.
Without Ronaldo, Real were limited in attack. Gareth Bale struggled to get into the game and on the visitors' rare forays forward Vincent Kompany and Nicolas Otamendi were solid.
City suffered a blow before the break as playmaker David Silva was forced off with a suspected hamstring injury but his replacement Kelechi Iheanacho, scorer of two goals at the weekend, entered to a big ovation.
The hosts had a clear chance early in the second half but Aguero fired over and Real finally started to force their way into the game.
Bale appealed without success for a penalty after stumbling following a challenge from Otamendi and an unmarked Ramos spurned a golden chance when he headed straight at Hart from a corner.
Toni Kroos missed the target with a long-range effort and substitute Jese went close as he leapt ahead of Fernando and headed against the bar. Bale curled an effort wide and Vazquez was also denied a penalty after tangling with Otamendi.
Hart, who had hitherto had a quiet game, then came to City's rescue with a fine reflex save from a Casemiro header and then did even better to block from Pepe at point-blank range.
City breathed a huge sigh of relief as they weathered that storm and they might even have snatched victory in injury time as De Bruyne had a free-kick tipped over by Keylor Navas.
Pre-match talking points
We look at some talking points ahead of the eagerly-anticipated tie.
HISTORIC OCCASION FOR CITY
This is a huge match for City and their biggest European occasion since reaching the 1970 Cup Winners' Cup final. The club have ambitions to be competing on this stage regularly but for now it is an important milestone in their accelerated progress towards the top of the game.
IMPORTANCE OF THE CROWD
City's fans have been slow to embrace the Champions League and their disgruntlement with organisers UEFA is well known, with their concerted booing of the competition's anthem having become a regular occurrence.
But enthusiasm has grown throughout this year's run and in the quarter-final against Paris Saint-Germain, the booing actually seemed to energise the crowd rather than set the wrong tone on what was a famous and raucous night. It should be another fiery atmosphere.
DOES PELLEGRINI HAVE A SCORE TO SETTLE?
The tie brings City boss Manuel Pellegrini up against the club that sacked him, perhaps harshly, in 2010 after just one season in charge. The Chilean secured a then club record 96 points in La Liga but still finished second to Barcelona. He has since said he did not have a good relationship with the board. He has played down the personal aspect of this meeting but overcoming his former employers would be highly satisfactory for the 62-year-old.
WHO WILL WIN THE BATTLE UP FRONT?
Neither side have a great reputation for defending, meaning the contest could be an open one. Real will look to their formidable forward line of Cristiano Ronaldo, Karim Benzema and Gareth Bale - although the former two must overcome fitness issues - to inflict maximum damage. City will rely on their striker Sergio Aguero, backed up by in-form Kevin De Bruyne and fit-again David Silva, to respond in kind.
KOMPANY SET TO RETURN
City have started to find form in recent weeks and their central defensive partnership of Eliaquim Mangala and Nicolas Otamendi has won over a few doubters after some shaky performances earlier in the season. Nevertheless, it would be a huge surprise if the highly influential Vincent Kompany, now recovered from his latest calf injury, did not return. City always look much more composed with their experienced leader at the heart of their back line.
CAN CITY STOP RONALDO?
Stopping Ronaldo, the three-time world player of the year, could be critical to City's hopes. The Portuguese has scored 31 goals in 34 La Liga games this season and 16 in 10 in the Champions League. He also has a fine record against City, having beaten them in all five games in which he has scored for either Real or Manchester United. However, he has also been sent off twice against them.
COMMENT RULES: Comments that are judged to be defamatory, abusive or in bad taste are not acceptable and contributors who consistently fall below certain criteria will be permanently blacklisted. The moderator will not enter into debate with individual contributors and the moderator’s decision is final. It is Belfast Telegraph policy to close comments on court cases, tribunals and active legal investigations. We may also close comments on articles which are being targeted for abuse. Problems with commenting? email@example.com