Liverpool will face last season’s semi-finalists RB Leipzig in the last 16 of the Champions League, while Chelsea come up against Atletico Madrid.
Manchester City will face Borussia Monchengladbach, who are in the last 16 for the first time since 1978.
Holders Bayern Munich face Italian side Lazio, who are in the knockout stage for the first time in 20 years.
Barcelona face Paris St-Germain in arguably the tie of the round, a repeat of their 2017 classic.
All three Premier League teams will be away for the first leg before having home advantage for the return matches.
The first legs will be spread across two midweeks, taking place on 16, 17, 23 and 24 February, with the second legs on 9, 10, 16 and 17 March.
Champions League last-16 draw
Borussia Monchengladbach v Manchester City
Lazio v Bayern Munich
Atletico Madrid v Chelsea
RB Leipzig v Liverpool
Porto v Juventus
Barcelona v Paris St-Germain
Sevilla v Borussia Dortmund
Atalanta v Real Madrid