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. On that occasion the French side won 4-0 in the first leg but Barcelona completed a stunning 6-1 home win to advance.
PSG forward Neymar, injured against Lyon on Sunday, scored twice for Barcelona in the last two minutes of that dramatic comeback – for Barcelona.
The Brazilian recently said he wants Barca great Lionel Messi to join him in Paris next season.
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.
Bayern – who beat PSG in last season’s final – are favourites with the bookmakers to retain their title.
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