The UCL round of 16 draw was held in Nyon, Switzerland, headquarters of UEFA on Monday.
Madrid will host the first-leg at the Santiago Bernabeu before travelling to the Etihad for the return leg.
In their last meeting, Madrid beat City 1-0 on aggregate in the semi-final in the 2015/2016 Champions League.
Madrid won the return leg after holding City to a 0-0 draw at the Etihad.
Another Premier League side Chelsea also got a tough round of 16 UCL draw as they will square off against Bundesliga giants Bayern Munich.
Bayern will be guests to Chelsea at Stamford Bridge before hosting the reverse fixture.
Their last Champions League meeting was the 2011/2012 final at the Allianz Arena, home ground of Bayern.
Chelsea triumphed 4-3 on penalties after 120 minutes of football ended 1-1. Thomas Muller put Bayern 1-0 with less than 10 minutes before Didier Drogba equalised in the 88th minute.
After the 2012 Champions League final clash, both Bayern and Chelsea met in the 2013 UEFA Super Cup with Bayern winning 5-4 on penalties after 90 minutes and extra-time ended 2-2.
And in another interesting UCL pairings, current holders Liverpool will go away for the first-leg to face Atletico Madrid at the Wanda Metropolitano.
In other round of 16 UCL pairings, Napoli will face Barcelona, Tottenham Hotspur will battle RB Leipzig, Borussia Dortmund and Paris Saint-Germain will go head-to-head.
Also Lyon will face Juventus and Champions League debutant this season Atalanta will clash with Valencia.
The first-leg of the 2019/2020 Champions League round of 16 will be played in February
18, 19, 25 and 26 February: Round of 16, first leg
While the return legs will come up in March 10, 11, 17 and 18.
Champions League round of 16 draw:
Real Madrid vs Manchester City
Chelsea vs Bayern Munich
Atletico Madrid vs Liverpool
Tottenham Hotspur vs RB Leipzig
Lyon vs Juventus
Napoli vs Barcelona
Dortmund vs PSG