Manchester United will face Paris Saint-Germain in the last-16 of the Champions League, while Liverpool take on Bundesliga champions Bayern Munich.
Premier League leaders Liverpool were 3-1 winners over rivals United on Sunday and their former Borussia Dortmund boss Jurgen Klopp will take on a familiar foe in Bayern.
PSG won a group featuring Liverpool and Napoli and will have the second leg at home in a tie that might prove to be Jose Mourinho's only chance of salvaging something from United's season when it comes around.
Dortmund will face Tottenham and a trio of Bundesliga-versus-Premier League encounters will be completed by Schalke against Manchester City.
Spectacular. The round of 16 draw :heart_eyes:
— #UCLdraw (@ChampionsLeague) December 17, 2018
Most exciting tie? #UCLdraw pic.twitter.com/ZjUBmvLwVl
Atletico Madrid, whose Wanda Metropolitano home will host this season's Champions League final, have been drawn against Cristiano Ronaldo and Serie A kings Juventus.
Lionel Messi's Barcelona travel to Lyon, whose only victory in group stage over Manchester City was followed by five consecutive draws.
Holders Real Madrid are in pursuit of a fourth consecutive title and take on an Ajax side that Bayern failed to beat during the round-robin phase.
Elsewhere, Roma have been drawn against Porto, with the first legs of the ties to be played on February 13/14 and 19/20 before returns on March 5/6 and 12/13.