Spurs got Manchester City.
Liverpool, meanwhile, will play Porto while Manchester United take on Barcelona. In the other tie, Ajax play Juventus.
Liverpool and Tottenham will play their first legs at home. With City set to host the second leg, that means United’s tie with Barcelona will be reverse to avoid the Manchester clubs being at home on consecutive days.
Should Liverpool and United both progress, they will play each other in the semi-final. The winners of the Spurs v City tie will play either Ajax or Juve for a place in the final.
City won both of their Premier League ties with Tottenham last season and also beat Mauricio Pochettino’s side at Wembley earlier in this campaign.
United’s tie against Barcelona means interim manager Ole Gunnar Solskjaer will enjoy another trip to the Nou Camp, where he scored the winner in United’s Champions League final win over Bayern Munich in 1999.
Liverpool have never lose to Porto in six matches, winning three and drawing three. The Reds ousted the Portuguese side from last season’s competition, winning the first leg 5-0 away from home and seeing out a 0-0 draw in the return leg.
The decider will be played on June 1 at the Estadio Metropolitano in Madrid.
Champions League quarter-final draw
Ajax v Juventus
Liverpool v Porto
Tottenham Hotspur v Manchester City
Barcelona v Manchester United*
*Tie reversed: United will play at home first.
First leg: 9/10 April. Second leg: 16/17 April.
Champions League semi-final draw
Tottenham / Manchester City v Ajax / Juventus
Liverpool / Porto v Manchester United / Barcelona
First leg: 30 April / 1 May. Second leg: 7/8 May