Play-off round
1st2ndAgg
FC Midtjylland won 4–1 on aggregate
1st2ndAgg
Red Bull Salzburg won 5–2 on aggregate
1st2ndAgg
Olympiakos Piraeus won 2–0 on aggregate
1st2ndAgg
Krasnodar won 4–2 on aggregate
1st2ndAgg
Dynamo Kyiv won 5–1 on aggregate
Round of 16
1st2ndAgg
Bayern München won 6–2 on aggregate
1st2ndAgg
PSG won 5–2 on aggregate
1st2ndAgg
Man City won 4–0 on aggregate
1st2ndAgg
Borussia Dortmund won 5–4 on aggregate
1st2ndAgg
Real Madrid won 4–1 on aggregate
1st2ndAgg
Liverpool won 4–0 on aggregate
1st2ndAgg
FC Porto won 5–3 on aggregate after extra time
1st2ndAgg
Chelsea won 3–0 on aggregate
Quarter-finals
1st2ndAgg
PSG won 4–2 on aggregate
1st2ndAgg
Man City won 4–2 on aggregate
1st2ndAgg
Real Madrid won 3–1 on aggregate
1st2ndAgg
Chelsea won 2–1 on aggregate
Semi-finals
1st2ndAgg
Man City won 4–1 on aggregate
1st2ndAgg
Chelsea won 3–1 on aggregate
Final
Data coverage for UEFA Champions League →
Sources: Wikipedia (CC BY-SA 4.0), API-Football · Data sources