Holder Real Madrid will face city rival Atletico Madrid in the last four of the UEFA Champions League, a repeat of last season's final fixture, with Juventus paired against Monaco in the other semi-final.
Zinedine Zidane's men defeated their LaLiga rivals in a dramatic penalty shootout to clinch an 11th triumph in Europe's premier competition.
It marked the second time in the space of three seasons that Madrid had defeated Atleti in the final, while Los Blancos also beat Diego Simeone's men in the quarter-finals of the 2014-2015 competition.
Madrid overcame Bayern Munich 6-3 on aggregate to reach the semi-finals after a dramatic second leg at Santiago Bernabeu that went to extra-time, while Atleti progressed by beating Premier League champion Leicester City.
Monaco hosts Juventus in what will be a stiff challenge for the young French side. Monaco beat Borussia Dortmund in their quarter-final, a match overshadowed by the bomb blast that damaged the team bus and injured player Marc Bartra prior to the first leg encounter at Signal Iduna Park.
Juventus will arguably be the favourite to progress to the final in Cardiff having beaten Barcelona over two legs, winning the first 3-0 at home in Turin before holding out for a goalless draw at Camp Nou this week.
The Madrid encounter will be played on Wednesday 3 May at Santiago Bernabeu, while Monaco will welcome Juventus to Stade Louis II on Thursday 4 May, both matches kicking off 4:45am AEST and broadcast LIVE on beIN SPORTS.