Play-off round
1st2ndAgg
Dinamo Zagreb won 3–1 on aggregate
1st2ndAgg
Slavia Praha won 2–0 on aggregate
1st2ndAgg
Ajax won 2–0 on aggregate
1st2ndAgg
Club Brugge won 3–1 on aggregate
1st2ndAgg
Olympiakos Piraeus won 6–1 on aggregate
Round of 16
1st2ndAgg
RB Leipzig won 4–0 on aggregate
1st2ndAgg
Atlético won 4–2 on aggregate after extra time
1st2ndAgg
Atalanta won 8–4 on aggregate
1st2ndAgg
PSG won 3–2 on aggregate
1st2ndAgg
Man City won 4–2 on aggregate
1st2ndAgg
Lyon won 3–1 on aggregate
1st2ndAgg
Barça won 4–2 on aggregate
1st2ndAgg
Bayern München won 7–1 on aggregate
Quarter-finals
Semi-finals
Final
Data coverage for UEFA Champions League →
Sources: Wikipedia (CC BY-SA 4.0), API-Football · Data sources