Defending champions Real Madrid will face Bayern Munich in the semi-finals of the Champions League while Liverpool play AS Roma in a repeat of the 1984 final.
Cristiano Ronaldo's Real will go to Bayern's Allianz Arena for the first leg while Liverpool will host Roma at Anfield in their first match, after Friday's draw.
The Liverpool-Roma tie pits Mohamed Salah, who has scored 39 goals in all competitions already this season, against his former club. "Looking forward to seeing you again," Roma tweeted about the Egyptian striker.
Real, who have won the competition 12 times, reached the semi-finals by fighting off a remarkable Juventus comeback before Ronaldo scored a late penalty to give them a 4-3 win on aggregate.
Roma produced one of the most remarkable comebacks in Champions League history to knock out Lionel Messi's Barcelona with a 3-0 victory in the Italian capital that gave them an unexpected win on away goals over the two legs.
Bundesliga champions Bayern, who named their former player Niko Kovac as their next coach minutes before the draw, eased past Sevilla in their quarter-final.
Bayern's sporting director Hasan Salihamidzic said Real held no fear for the Bavarians, who lost to Madrid in the 2017 quarter-finals.
"They are formidable opponents. We were knocked out by them last year and we want to do better this year," Salihamidzic said.
"I'm optimistic. We have great respect for them but we're not afraid."
Liverpool beat runaway Premier League leaders Manchester City 5-1 on aggregate to set up their meeting with Roma. The English side have happy memories of the 1984 final, played in Rome's Olympic Stadium. They won 4-2 on penalties after the match finished 1-1 in extra-time.
The first legs will take place on April 24-25 and the second will be on May 1-2.
The 2018 final will be played in Kiev.