Real looked to be staring elimination in the face in the last round, only for Cristiano Ronaldo's second-leg hat-trick to give it a 3-2 aggregate victory over Wolfsburg
, having lost the first leg 2-0 in Germany.
And its reward for that stunning comeback is a last-four clash against a City side that is in uncharted territory.
The English Premier League team has never been in a Champions League semifinal in its history, and will now face the club that has won the trophy more times than any other.
City will take confidence from its elimination of Paris Saint-Germain in the quarterfinals, and manager Manuel Pellegrini will be eager to take his team into the final with Pep Guardiola due to replace him at the end of the season.
City will need to stop Ronaldo over the two games, with the Portugal captain having been in inspired form in the competition this season with 16 goals to his name -- more than any other player.
The two sides have met twice in the Champions League before, coming up against each other in the group stages during the 2012-13 season.
Real won the first clash 3-2, while the return game ended in a 1-1 draw.
Guardiola could set up a May showdown against his new employers, if his Bayern Munich team can get the better of Atletico Madrid in the other semifinal tie.
It's a repeat of the 1974 final , won by Bayern, but Atletico, which also lost the 2014 final to Real, will fancy its chances against the tournament favorite after knocking out reigning champion Barcelona in the quarterfinals.
Bayern reached this stage by beating Benfica and remain on course for the "Treble," currently sitting seven points clear at the top of the German Bundesliga and with a spot in the German Cup semifinals.
Bayern boss Guardiola has yet to win the trophy during his time at the club but will want to add to the two titles he won while at Barcelona before he moves to City in the summer.
The semifinals are due to take place on April 26/27 and May 3/4, while the final in Milan is on May 28.
Europa League last four
Meanwhile, in the Europa League, Liverpool's reward for its emphatic 5-4 aggregate victory over Borussia Dortmund Thursday
is a semifinal tie against Villarreal.
The English Premier League side came from 3-1 down to win 4-3 on the night against Dortmund, with Dejan Lovren scoring the dramatic last-minute decider.
Liverpool is looking to claim the trophy for a fourth time, having won it under its former guise of the UEFA Cup three times in the past.
Reigning champion Sevilla will meet Shakhtar Donetsk in the other tie, with the Spanish La Liga side out to win the trophy for a third consecutive year and a record fifth time overall.
The semifinals are due to take place on April 28 and May 5, while the final in Basel is on May 18.