Bayern Munich have been handed a semi-final draw against holders Real Madrid, while Liverpool will play Roma in the Champions League semi-finals. Real, who have won the competition in three of the past four seasons, reached the last four by coming through a dramatic second leg against Juventus. Leading 3-0 from the first leg tie, Zinedine Zidane's side were pegged back to 3-3 at the Bernabeu, before a last-gasp penalty from Cristiano Ronaldo saw them through.
Zidane has been under pressure this season though, particularly for his team's league form, with Los Blancos fourth in La Liga and 15 points behind leaders Barcelona.
Liverpool, who overcame Manchester City 5-1 on aggregate in the quarter-finals, will host Roma on 24 or 25 April before the return leg on 1 or 2 May.
Liverpool, Champions League winners in 2005, have not faced Roma in a competitive match since March 2002.
The Reds' top scorer Mohamed Salah will face the club he left for £34m in the summer.
Roma are fourth in Serie A - 21 points behind leaders Juventus.
They staged a remarkable comeback to beat Barcelona 3-0 on Wednesday and win their quarter-final on away goals after a 4-4 aggregate draw.
Meanwhile, Arsenal will face Atletico Madrid in the Europa League semi-finals, while Red Bull Salzburg meet Marseille.
The Gunners will play the first leg at home on Thursday, 26 April, with the second leg a week later on 3 May.
The Europa League final will be in Lyon, France on Wednesday, 16 May, with the winner guaranteed a place in next season's Champions League.
The Champions League final will be held in Kiev, Ukraine on Saturday, 26 May.