• City know any win next Wednesday at home against Madrid will send them to only their second Champions League final, against either Inter Milan or AC Milan.
• Pep Guardiola's side dominated the early stages at a nervy Bernabeu, with Thibaut Courtois denying De Bruyne, Rodri and Erling Haaland twice.
Kevin de Bruyne's screamer earned Manchester City a Champions League semi-final first-leg draw at Real Madrid to keep their dream of a Treble on track.
City know any win next Wednesday at home against Madrid will send them to only their second Champions League final, against either Inter Milan or AC Milan.
Pep Guardiola's side dominated the early stages at a nervy Bernabeu, with Thibaut Courtois denying De Bruyne, Rodri and Erling Haaland twice.
But Vinicius Jr scored with Real's only chance of the first half, a 25-yard thunderbolt which flew past Ederson following a brilliant run by Eduardo Camavinga.
Just as Real began to dominate a period of the second half, City found a way back with De Bruyne fizzing a shot from a similar distance into the bottom corner.
Aurelien Tchouameni almost gave Real, looking to extend their record tally to 15th European crowns, the lead again with another strike from range but it was well saved by Ederson.
City are now unbeaten in 21 games in all competitions, a run which includes 17 wins. Seven more victories and they get the Treble.
Man City take step closer to glory
The Champions League is the one that has been missing for City and they are arguably the best European team of the current era never to win it.
It sounds so simple, but they just need to beat Real, who are third in La Liga, at home and then either the team fourth or fifth in Italy's Serie A in the final in Istanbul. Milan face Inter on Wednesday.
Not that Guardiola will let his players get carried away with that scenario.
They lead the Premier League from Arsenal with four games to go and face Manchester United, the only English team to win a Treble, in the FA Cup final in June.
Talk before the game was of revenge, with Real beating City at this stage last season in a 6-5 aggregate classic.
But, a year on, City look more grown up and almost unbeatable. This game was edgy and heated but lacked some of the chaos of last season's first leg, which ended 4-3.
Guardiola knows his best team now so the days of throwing a tactical shock, which often did not work, in a game like this seem a thing of the past.
They played this game as if they were at home, with Real supporters booing their relentless possession. Courtois had four saves to make in the opening 16 minutes alone.
But then they trailed to Vinicius' goal - with the Brazilian also scoring against City last year.
However their heads did not drop, and their three-month unbeaten run continues thanks to De Bruyne.
Ilkay Gundogan laid the ball off for De Bruyne, who thrashed a shot past his Belgium team-mate Courtois. Having also netted in 2020, De Bruyne is the first player in Champions League history to score in separate away games against Real in the knockout stages.
City - who did not make any substitutions - never had a chance to win the game, with that their last shot of the game. Next week they will hope to see 51-goal Haaland get more joy in front of goal.
Never write off Real Madrid
Madrid's aura in the Champions League is something special. They are not the defending champions - and 14-time winners - by accident.
Domestically they sit 14 points behind champions elect Barcelona, with Atletico Madrid also above them.
But they have won five Champions Leagues in nine years, with two of them coming in seasons they finished third.
Carlo Ancelotti's side came into this game on a good bit of domestic news, having won the Copa del Rey final against Osasuna on Saturday.
But this is where Real thrive - often against English clubs too. This is their sixth knockout round in a row against City, Chelsea or Liverpool - they have come through the other five.
The first half was a smash and grab to some extent with Vinicius' goal coming from their first real attack. Only Haaland (13 - 12 goals, one assist) has been involved in more Champions League goals than Vinicius this season (12 - seven goals, five assists).
They grew into the game in the second half, with De Bruyne giving them a taste of their own medicine by scoring after the end of a good spell for Real.
Camavinga, who set up their goal, gave the ball away to Rodri in the build-up, highlighting the pros and cons of playing a central midfielder at left-back.
Madrid boss Ancelotti was booked for his angry reaction to the goal, claiming the ball went out of play in the build-up. His side had chances to win the game with Benzema's header saved by Ederson, before French sub Tchouameni went close.