Barcelona will face Paris St Germain and former striker Neymar, while title holders Bayern Munich are up against Italy's Lazio in the last 16 of the Champions League.
The clash of Lionel Messi and Barca with last year's runners-up PSG is a repeat of their remarkable meeting at the same stage in 2017, when Barca overcame a 4-0 first-leg loss to beat the French club 6-1 in Spain.
Bayern will start as favourites in their tie, but will be wary of Simone Inzaghi's Lazio team, who have reached this stage for the first time in 20 years.
Premier League champions Liverpool will play last year's semi-finalists RB Leipzig, creating a match-up between Germany's most highly-rated young manager Julian Nagelsmann of Leipzig with Liverpool's Jürgen Klopp, the country's most popular manager.
Real Madrid face Serie A club Atalanta, while Atletico Madrid will face Chelsea and Manchester City will take on Borussia Moenchengladbach, who are in the last 16 for the first time in the Champions League era.
Italian champions Juventus will face Porto, a game where Cristiano Ronaldo will return to his homeland Portugal.
Champions League Round of 16
- Barcelona v Paris St Germain
- Liverpool v RB Leipzig
- Manchester City v Borussia Moenchengladbach
- Atletico Madrid v Chelsea
- Juventus v Porto
- Dortmund v Savilla
- Atalanta v Real Madrid
- Lazio v Bayern Munich