
Play-off round
1st2ndAgg
Man City won 6–0 on aggregate
1st2ndAgg
Monaco won 3–1 on aggregate
1st2ndAgg
FC Porto won 4–1 on aggregate
1st2ndAgg
Ludogorets Razgrad won 4–2 on aggregate
1st2ndAgg
Celtic won 5–4 on aggregate
1st2ndAgg
Copenhagen won 2–1 on aggregate
1st2ndAgg
Legia Warszawa won 3–1 on aggregate
1st2ndAgg
Dinamo Zagreb won 3–2 on aggregate after extra time
1st2ndAgg
Rostov won 5–2 on aggregate
1st2ndAgg
Borussia Mönchengladbach won 9–2 on aggregate
Round of 16
1st2ndAgg
Borussia Dortmund won 4–1 on aggregate
1st2ndAgg
Juventus won 3–0 on aggregate
1st2ndAgg
Barça won 6–5 on aggregate
1st2ndAgg
Bayern München won 10–2 on aggregate
1st2ndAgg
Real Madrid won 6–2 on aggregate
1st2ndAgg
Atlético won 4–2 on aggregate
1st2ndAgg
Leicester won 3–2 on aggregate
Quarter-finals
1st2ndAgg
Monaco won 6–3 on aggregate
1st2ndAgg
Juventus won 3–0 on aggregate
1st2ndAgg
Real Madrid won 6–3 on aggregate after extra time
1st2ndAgg
Atlético won 2–1 on aggregate
Semi-finals
1st2ndAgg
Juventus won 4–1 on aggregate
1st2ndAgg
Real Madrid won 4–2 on aggregate
Final
Data coverage for UEFA Champions League →
Sources: Wikipedia (CC BY-SA 4.0), API-Football · Data sources