Zinedine Zidane's Los Blancos, who move through with a 1-0 aggregate after last week's goalless draw in Manchester, were deserved winners in the semi-final second leg at the Santiago Bernabeu despite the only goal of the night coming from a Fernando deflection in the 20th minute.
Manuel Pellegrini's City failed to apply the attacking pressure required to win a European match of such magnitude and only really produced a couple of genuine goalscoring attempts.
Fernandinho skimmed the post just before the break while Sergio Aguero tried his luck with a long range effort late on but with Real keeper Keylor Navas scampering to get back, the ball landed on top of the net.
The only goal of the two-legged tie came when Dani Carvajal played in Gareth Bale on the right side of the box, inviting the Welshman to fire across goal to see the ball fortuitously fly in off Fernando's outstretched leg and fly over the hand of Joe Hart, nestling inside the far post.
It was a dirty night for City who had captain Vincent Kompany forced off inside 10 minutes with another leg injury while Real's Lucas Vazquez was unlucky not to be sent off for a horror challenge on Raheem Sterling.
Bale headed onto the crossbar from a corner midway through the second half after Cristiano Ronaldo's initial effort had been deflected over Hart but the home side were not their usual attacking selves either and were also devoid of out-and-out scoring opportunities.
Ronaldo, who was back in the line-up after a thigh injury, tried his luck on several occasions but the shots he did put on target weren't enough to beat Hart.
Real ended up being the better of the two sides when it counted and will move through to the May 28 final where they will take on local rivals Atletico Madrid at the San Siro in Milan in a replay of the 2014 Battle of Madrid.
Real are chasing what they are now calling the 'undecima' - 11th European title - while Atleti will look to make it third time lucky having lost the final to Bayern Munich in 1974 as well as two years ago.
2015/16 UEFA Champions League - semi-final second leg
*Real win 1-0 on aggregate
Santiago Bernabeu, Madrid, Spain - 78,000