11-time champions Real could become the first club in the Champions League era to win the competition back to back.
The Madrid clubs have met in the final in two of the last three years, with Real coming out on top on both occasions.
The other tie will see Ligue 1 leaders Monaco take on Italian champions Juventus.
Juventus won the competition in 1985 and 1996, while Monaco have reached the final only once, when they lost to Jose Mourinho’s FC Porto in 2004.
The first legs will take place on May 2nd and 3rd, with the second legs the following week.
Meanwhile, Manchester United will play Celta Vigo in the Europa League semifinals, while Ajax have been drawn with Lyon in the other tie.
United would become only the 5th club to win all 3 major European trophies if they succeed in the competition, after Ajax, Bayern Munich, Chelsea and Juventus.
A win will also guarantee United a place in next season’s champions league.