Cape Town - Manchester City will face Liverpool in an all-English Champions League quarter-final while Juventus play holders Real Madrid in a repeat of last year's final.
Surprise qualifiers Sevilla will take on Bayern Munich and Barcelona were paired with AS Roma in the draw in Nyon on Friday.
Unlike previous rounds it was an open draw in which no teams were seeded with clubs from the same national association able to be drawn against each other.
Jurgen Klopp's Liverpool side will host Pep Guardiola's City at Anfield for the first leg, either on April 3 or April 4.
Cristiano Ronaldo and his Real team-mates will be happy to be playing the second leg of their tie at their Santiago Bernabeu stadium against Juventus, whose experience proved lethal to English club Tottenham in the last 16.
Bayern, aiming to win Europe's top club crown for the sixth time, face Sevilla, the surprise slayers of Manchester United in the last round, but goalkeeper Sven Ulreich said they were relieved to avoid one of their major rivals.
"There are harder draws. It's doable, but Sevilla have shone in Europe and they have won three Europa Leagues," Ulreich said.
"So we'll be very focused when we go over there (for the first leg) and then we'll do the business at home."
Champions League quarter-final draw:
Barcelona (ESP) v Roma (ITA)
Sevilla (ESP) v Bayern Munich (GER)
Juventus (ITA) v Real Madrid (ESP)
Liverpool (ENG) v Manchester City (ENG)
First legs on April 3 and 4, second legs on April 10 and 11
Semi-finals: April 24 and 25, and May 1 and 2
Final: May 26 in Kiev