Isco sent Madrid ahead on the hour, but Gabriel Jesus levelled the scores in the 78th minute before a Kevin De Bruyne penalty ensured that Pep Guardiola's side would pick up an advantage ahead of the second leg at the Etihad Stadium on March 17.
It got worse for the home side in the latter stages, though, as club captain Sergio Ramos received a straight red card for bringing Gabriel Jesus to the ground with a last-man challenge.
Vinicius worked some space down the left before delivering a dangerous cross into the City box in the 12th minute, but Aymeric Laporte did excellently to clear ahead of Benzema.
City's first opportunity of the match arrived in the 21st minute when Gabriel Jesus worked space inside the Madrid box, but the Brazil international fired straight at Thibaut Courtois.
De Bruyne then fired over the crossbar from a decent position in the 28th minute as the English champions looked the team more likely to register in the Spanish capital.
Madrid, though, should have made the breakthrough in the 31st minute. Indeed, Ederson did brilliantly to keep out a header from Benzema, but the ball fell for Vinicius, who looked to be favourite to tap home from close range. The Brazilian lost his balance at the vital moment, however, and could not make contact.
City then lost Laporte in the 33rd minute with the Frenchman, who has only just returned from a long-term knee issue, being replaced by Fernandinho in the heart of the away side's defence.
Guardiola's side had a golden chance to take the lead late in the first period when the ball fell for Gabriel Jesus inside the penalty box following a half-cleared corner, but the South American saw his shot, which had beaten Courtois, cleared off the line by a mixture of Casemiro and Ramos.
Riyad Mahrez had the first opportunity of the second period in the 50th minute following a quick counter-attack from the visitors, but the Algeria international could only bend his effort wide of the far post.
Vinicius's pace took him past Kyle Walker in the 55th minute and the Brazilian went down inside the City box, but the referee was not interested and replays showed that the attacker had simply lost his balance.
Courtois then had to keep out a strike from Mahrez down the other end, before the same two players again went head-to-head just before the hour, leading to the Madrid stopper making an even better save.
Ederson denied Isco from a header during the same period of the match, but City were the team looking the more likely to make the breakthrough.
Los Blancos, though, opened the scoring on the hour when a clever pass from Vinicius found Isco, who simply slotted the ball into the bottom corner to spark jubilant scenes inside the stadium.
Nicolas Otamendi was guilty of trying to force a pass in a dangerous area, and Vinicius's pace proved key as the Brazilian broke clear before providing the assist for the opening goal of the contest.
Madrid had two big chances to double their advantage in the 71st minute, but Fernandinho first managed to cut out a low cross from Dani Carvajal, which looked to be finding Benzema for a tap in, before the Brazilian did excellently to block a strike from Ramos.
Sterling came off the away side's bench in the 73rd minute as he returned from a hamstring injury, before Bale entered the field for Los Blancos during a key stage of the match.
City were level in the 78th minute when Gabriel Jesus headed a brilliant De Bruyne cross into the back of the net. Madrid wanted a foul for a push on Ramos, but neither the referee nor VAR were interested.
Gabriel Jesus then headed a cross from Mahrez just over moments later as the visitors looked for a second.
The English champions did score a second in the 83rd minute, though, when De Bruyne found the bottom corner from the penalty spot after Carvajal had clumsily brought Sterling to the deck.
Ramos was then sent off for pulling Gabriel Jesus to the ground in a last-man challenge; the resulting free kick came to nothing, but it was another huge blow for the home side.
Sterling could have scored a third for City in second-half stoppage time, but the England international fired straight into the arms of Courtois as it finished 2-1 on the night.
Next up for Madrid is the small matter of El Clasico at home to Barcelona in La Liga on Sunday, while City will face Aston Villa in the final of the EFL Cup on the same afternoon.
REAL MADRID (4-4-3): Courtois; Carvajal, Ramos, Varane, Mendy; Valverde, Casemiro, Modric (Jovic 84'); Vinicius (Bale 74'), Benzema, Isco (Vazquez 84')
MANCHESTER CITY (4-3-3): Ederson; Walker, Otamendi, Laporte (Fernandinho 33'), Mendy; Gundogan, Rodri, De Bruyne; Mahrez, Jesus, B Silva (Sterling 73')