# 2003–04 UEFA Champions League

The 2003–04 UEFA Champions League was the 12th season of UEFA's premier European club football tournament, the UEFA Champions League, since its rebranding from the European Cup in 1992, and the 49th tournament overall. This was the first UEFA Champions League edition to feature a new format with a 16-team knockout round instead of a second group stage.
The competition was won by Portugal's Porto, who defeated Monaco of France 3–0 at the Arena AufSchalke in Gelsenkirchen, Germany. This was Portugal's first win since 1987, and Porto's second European trophy in two years, following their UEFA Cup success from the previous season. This was the second consecutive victory in a European cup for Porto coach José Mourinho, who beat Monaco coached by Didier Deschamps, a two-time winner of the competition as a player. As winners of the competition, Porto went on to represent UEFA in the 2004 Intercontinental Cup.
Milan were the defending champions, but were eliminated by Deportivo La Coruña in the quarter-finals.

## Association team allocation

A total of 72 teams from 48 UEFA member associations participated in the 2003–04 UEFA Champions League. Liechtenstein (who does not have their own domestic league) as well as Andorra and San Marino did not participate. Also not admitted was Azerbaijan, which was suspended by UEFA. Each association enters a certain number of clubs to the Champions League based on its league coefficient; associations with a higher league coefficient may enter more clubs than associations with a lower league coefficient, but no association may enter more than four teams.
* Associations 1–3 each have four teams qualify.
* Associations 4–6 each have three teams qualify.
* Associations 7–15 each have two teams qualify.
* Associations 16–52 (except Azerbaijan, Liechtenstein, Andorra and San Marino) each have one team qualify.

### Association ranking

For the 2003–04 UEFA Champions League, the associations are allocated places according to their 2002 UEFA country coefficients, which takes into account their performance in European competitions from 1997–98 to 2001–02.
| Rank | Association | Coeff. | Teams |
| 1 | Spain | 68.467 | 4 |
| 2 | Italy | 58.668 | 4 |
| 3 | England | 55.459 | 4 |
| 4 | Germany | 52.990 | 3 |
| 5 | France | 42.352 | 3 |
| 6 | Greece | 36.116 | 3 |
| 7 | Netherlands | 34.165 | 2 |
| 8 | Turkey | 28.725 | 2 |
| 9 | Portugal | 28.249 | 2 |
| 10 | Russia | 27.291 | 2 |
| 11 | Czech Republic | 26.625 | 2 |
| 12 | Scotland | 26.125 | 2 |
| 13 | Ukraine | 25.958 | 2 |
| 14 | Belgium | 25.525 | 2 |
| 15 | Austria | 23.250 | 2 |
| 16 | Switzerland | 22.625 | 1 |
| 17 | Norway | 21.475 | 1 |
| 18 | Israel | 21.332 | 1 |
| Rank | Association | Coeff. | Teams |
| 19 | Croatia | 21.041 | 1 |
| 20 | Poland | 17.500 | 1 |
| 21 | Denmark | 17.375 | 1 |
| 22 | Sweden | 17.241 | 1 |
| 23 | Serbia and Montenegro | 16.331 | 1 |
| 24 | Slovakia | 15.665 | 1 |
| 25 | Bulgaria | 15.165 | 1 |
| 26 | Romania | 13.916 | 1 |
| 27 | Hungary | 13.749 | 1 |
| 28 | Slovenia | 11.832 | 1 |
| 29 | Cyprus | 9.332 | 1 |
| 30 | Finland | 8.041 | 1 |
| 31 | Latvia | 7.165 | 1 |
| 32 | Georgia | 6.999 | 1 |
| 33 | Moldova | 5.165 | 1 |
| 34 | Iceland | 4.832 | 1 |
| 35 | Belarus | 4.083 | 1 |
| Rank | Association | Coeff. | Teams |
| 36 | Lithuania | 3.831 | 1 |
| 37 | Republic of Ireland | 3.331 | 1 |
| 38 | Macedonia | 2.997 | 1 |
| 39 | Malta | 2.498 | 1 |
| 40 | Wales | 1.832 | 1 |
| 41 | Estonia | 1.665 | 1 |
| 42 | Bosnia and Herzegovina | 1.333 | 1 |
| 43 | Armenia | 1.332 | 1 |
| 44 | Northern Ireland | 1.331 | 1 |
| 45 | Albania | 1.165 | 1 |
| 46 | Faroe Islands | 1.165 | 1 |
| 47 | Azerbaijan | 1.165 | 0 |
| 48 | Liechtenstein | 1.000 | 0 |
| 49 | Luxembourg | 0.832 | 1 |
| 50 | Andorra | 0.000 | 0 |
| 51 | San Marino | 0.000 | 0 |
| 52 | Kazakhstan | 0.000 | 1 |

### Distribution

Since the title holders (Milan) also qualified for the Champions League Third qualifying round through their domestic league, one Third qualifying round spot was vacated. Due to this, as well as due to suspension of Azerbaijan, the following changes to the default access list are made:
* The champions of association 16 (Switzerland) are promoted from the second qualifying round to the third qualifying round.
* The champions of associations 26, 27 and 28 (Romania, Hungary and Slovenia) are promoted from the first qualifying round to the second qualifying round.
| | Teams entering in this round | Teams advancing from previous round |
| First qualifying round (20 teams) | 20 champions from associations 29–52 (except Azerbaijan, Liechtenstein, Andorra and San Marino) | |
| Second qualifying round (28 teams) | 12 champions from associations 17–28 6 runners-up from associations 10–15 | 10 winners from the first qualifying round |
| Third qualifying round (32 teams) | 7 champions from associations 10–16 3 runners-up from associations 7–9 5 third-place finishers from associations 1–6 (except Italy) 3 fourth-place finishers from associations 1–3 | 14 winners from the second qualifying round |
| Group stage (32 teams) | 1 current Champions League title holder (Milan) 9 champions from associations 1–9 6 runners-up from associations 1–6 | 16 winners from the third qualifying round |
| Knockout phase (16 teams) | | 8 group winners from the group stage 8 group runners-up from the group stage |

### Teams

League positions of the previous season shown in parentheses (TH: Champions League title holders).
Group stage :
| Real Madrid (1st) | Manchester United (1st) | Lyon (1st) | PSV Eindhoven (1st) |
| Real Sociedad (2nd) | Arsenal (2nd) | Monaco (2nd) | Beşiktaş (1st) |
| Juventus (1st) | Bayern Munich (1st) | Olympiacos (1st) | Porto (1st) |
| Internazionale (2nd) | VfB Stuttgart (2nd) | Panathinaikos (2nd) | Milan (3rd) |
| Third qualifying round ||||
| Deportivo La Coruña (3rd) | Borussia Dortmund (3rd) | Benfica (2nd) | Dynamo Kyiv (1st) |
| Celta Vigo (4th) | Marseille (3rd) | Lokomotiv Moscow (1st) | Club Brugge (1st) |
| Lazio (4th) | AEK Athens (3rd) | Sparta Prague (1st) | Austria Wien (1st) |
| Newcastle United (3rd) | Ajax (2nd) | Rangers (1st) | Grasshopper (1st) |
| Chelsea (4th) | Galatasaray (2nd) | | |
| Second qualifying round ||||
| CSKA Moscow (2nd) | GAK (2nd) | Copenhagen (1st) | CSKA Sofia (1st) |
| Slavia Prague (2nd) | Rosenborg (1st) | Djurgårdens IF (1st) | Rapid București (1st) |
| Celtic (2nd) | Maccabi Tel Aviv (1st) | Partizan (1st) | MTK Hungária (1st) |
| Shakhtar Donetsk (2nd) | Dinamo Zagreb (1st) | Žilina (1st) | Maribor (1st) |
| Anderlecht (2nd) | Wisła Kraków (1st) | | |
| First qualifying round ||||
| Omonia (1st) | KR (1st) | Sliema Wanderers (1st) | Glentoran (1st) |
| HJK (1st) | BATE Borisov (1st) | Barry Town (1st) | Tirana (1st) |
| Skonto (1st) | Kaunas (1st) | Flora (1st) | HB (1st) |
| Dinamo Tbilisi (1st) | Bohemians (1st) | Leotar (1st) | Grevenmacher (1st) |
| Sheriff Tiraspol (1st) | Vardar (1st) | Pyunik (1st) | Irtysh (1st) |

#### Notes

* ^ Azerbaijan (AZE): Clubs from Azerbaijan were not admitted to UEFA competitions as no domestic league took place in 2002–03 season and AFFA was suspended by UEFA as a result of ongoing conflict between the clubs and federation.

## Round and draw dates

The schedule of the competition is as follows (all draws are held at UEFA headquarters in Nyon, Switzerland, unless stated otherwise).
| Phase | Round | Draw date | First leg | Second leg |
| Qualifying | First qualifying round | 20 June 2003 | 16 July 2003 | 23 July 2003 |
| Qualifying | Second qualifying round | 20 June 2003 | 30 July 2003 | 6 August 2003 |
| Qualifying | Third qualifying round | 25 July 2003 | 12–13 August 2003 | 26–27 August 2003 |
| Group stage | Matchday 1 | 28 August 2003 (Monaco) | 16–17 September 2003 | 16–17 September 2003 |
| Group stage | Matchday 2 | 28 August 2003 (Monaco) | 30 September – 1 October 2003 | 30 September – 1 October 2003 |
| Group stage | Matchday 3 | 28 August 2003 (Monaco) | 21–22 October 2003 | 21–22 October 2003 |
| Group stage | Matchday 4 | 28 August 2003 (Monaco) | 4–5 November 2003 | 4–5 November 2003 |
| Group stage | Matchday 5 | 28 August 2003 (Monaco) | 25–26 November 2003 | 25–26 November 2003 |
| Group stage | Matchday 6 | 28 August 2003 (Monaco) | 9–10 December 2003 | 9–10 December 2003 |
| Knockout phase | Round of 16 | 12 December 2003 | 24–25 February 2004 | 9–10 March 2004 |
| Knockout phase | Quarter-finals | 12 March 2004 | 23–24 March 2004 | 6–7 April 2004 |
| Knockout phase | Semi-finals | 12 March 2004 | 20–21 April 2004 | 4–5 May 2004 |
| Knockout phase | Final | 12 March 2004 | 26 May 2004 at Arena AufSchalke, Gelsenkirchen | 26 May 2004 at Arena AufSchalke, Gelsenkirchen |

## Qualifying rounds
### First qualifying round

The first legs were played on 16 July, and the second legs were played on 23 July 2003.
| Team 1 | Agg. Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Pyunik | 2–1 | KR | 1–0 | 1–1 |
| Sheriff Tiraspol | 2–1 | Flora | 1–0 | 1–1 |
| HB | 1–5 | Kaunas | 0–1 | 1–4 |
| BATE Borisov | 1–3 | Bohemians | 1–0 | 0–3 |
| Vardar | 4–2 | Barry Town | 3–0 | 1–2 |
| Grevenmacher | 0–2 | Leotar | 0–0 | 0–2 |
| Glentoran | 0–1 | HJK | 0–0 | 0–1 |
| Sliema Wanderers | 3–3 (a) | Skonto | 2–0 | 1–3 |
| Omonia | 2–1 | Irtysh | 0–0 | 2–1 |
| Dinamo Tbilisi | 3–3 (2–4 p) | Tirana | 3–0 | 0–3 (a.e.t.) |

### Second qualifying round

The first legs were played on 30 July, and the second legs were played on 6 August 2003.
| Team 1 | Agg. Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| MTK Hungária | 3–2 | HJK | 3–1 | 0–1 |
| Pyunik | 0–3 | CSKA Sofia | 0–2 | 0–1 |
| Kaunas | 0–5 | Celtic | 0–4 | 0–1 |
| Leotar | 1–4 | Slavia Prague | 1–2 | 0–2 |
| Sheriff Tiraspol | 0–2 | Shakhtar Donetsk | 0–0 | 0–2 |
| Žilina | 2–1 | Maccabi Tel Aviv | 1–0 | 1–1 |
| Bohemians | 0–5 | Rosenborg | 0–1 | 0–4 |
| Maribor | 2–3 | Dinamo Zagreb | 1–1 | 1–2 |
| CSKA Moscow | 2–3 | Vardar | 1–2 | 1–1 |
| Rapid București | 2–3 | Anderlecht | 0–0 | 2–3 |
| Partizan | 3–3 (a) | Djurgårdens IF | 1–1 | 2–2 |
| Wisła Kraków | 7–4 | Omonia | 5–2 | 2–2 |
| Copenhagen | 10–1 | Sliema Wanderers | 4–1 | 6–0 |
| Tirana | 2–7 | GAK | 1–5 | 1–2 |

### Third qualifying round

The first legs were played on 12 and 13 August, and the second legs were played on 26 and 27 August 2003.
| Team 1 | Agg. Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Vardar | 4–5 | Sparta Prague | 2–3 | 2–2 |
| MTK Hungária | 0–5 | Celtic | 0–4 | 0–1 |
| Rangers | 3–2 | Copenhagen | 1–1 | 2–1 |
| Austria Wien | 0–1 | Marseille | 0–1 | 0–0 |
| Club Brugge | 3–3 (4–2 p) | Borussia Dortmund | 2–1 | 1–2 (a.e.t.) |
| Shakhtar Donetsk | 2–3 | Lokomotiv Moscow | 1–0 | 1–3 |
| Lazio | 4–1 | Benfica | 3–1 | 1–0 |
| Dynamo Kyiv | 5–1 | Dinamo Zagreb | 3–1 | 2–0 |
| Rosenborg | 0–1 | Deportivo La Coruña | 0–0 | 0–1 |
| Grasshopper | 2–3 | AEK Athens | 1–0 | 1–3 |
| Žilina | 0–5 | Chelsea | 0–2 | 0–3 |
| Celta Vigo | 3–2 | Slavia Prague | 3–0 | 0–2 |
| Partizan | 1–1 (4–3 p) | Newcastle United | 0–1 | 1–0 (a.e.t.) |
| Galatasaray | 6–0 | CSKA Sofia | 3–0 | 3–0 |
| Anderlecht | 4–1 | Wisła Kraków | 3–1 | 1–0 |
| GAK | 2–3 | Ajax | 1–1 | 1–2 (a.e.t.) |

## Group stage

Title holders, 16 winners from the third qualifying round, 9 champions from countries ranked 1–10, and six second-placed teams from countries ranked 1–6 were drawn into eight groups of four teams each. The top two teams in each group advanced to the Champions League play-offs, while the third-placed teams advanced to the Third Round of the UEFA Cup.
Tiebreakers, if necessary, were applied in the following order:
* Points earned in head-to-head matches between the tied teams.
* Total goals scored in head-to-head matches between the tied teams.
* Away goals scored in head-to-head matches between the tied teams.
* Cumulative goal difference in all group matches.
* Total goals scored in all group matches.
* Higher UEFA coefficient going into the competition.
Real Sociedad, Celta Vigo, VfB Stuttgart and Partizan made their debut appearance in the group stage. This season became the first in the history of the Champions League in which three Greek clubs played in the group stage

### Group A

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | LYO | BAY | CEL | AND |
| 1 | Lyon | 6 | 3 | 1 | 2 | 7 | 7 | 0 | 10 | Advance to knockout stage | — | 1–1 | 3–2 | 1–0 |
| 2 | Bayern Munich | 6 | 2 | 3 | 1 | 6 | 5 | +1 | 9 | Advance to knockout stage | 1–2 | — | 2–1 | 1–0 |
| 3 | Celtic | 6 | 2 | 1 | 3 | 8 | 7 | +1 | 7 | Transfer to UEFA Cup | 2–0 | 0–0 | — | 3–1 |
| 4 | Anderlecht | 6 | 2 | 1 | 3 | 4 | 6 | −2 | 7 | | 1–0 | 1–1 | 1–0 | — |

### Group B

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | ARS | LMO | INT | DKV |
| 1 | Arsenal | 6 | 3 | 1 | 2 | 9 | 6 | +3 | 10 | Advance to knockout stage | — | 2–0 | 0–3 | 1–0 |
| 2 | Lokomotiv Moscow | 6 | 2 | 2 | 2 | 7 | 7 | 0 | 8 | Advance to knockout stage | 0–0 | — | 3–0 | 3–2 |
| 3 | Internazionale | 6 | 2 | 2 | 2 | 8 | 11 | −3 | 8 | Transfer to UEFA Cup | 1–5 | 1–1 | — | 2–1 |
| 4 | Dynamo Kyiv | 6 | 2 | 1 | 3 | 8 | 8 | 0 | 7 | | 2–1 | 2–0 | 1–1 | — |

### Group C

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | MON | DEP | PSV | AEK |
| 1 | Monaco | 6 | 3 | 2 | 1 | 15 | 6 | +9 | 11 | Advance to knockout stage | — | 8–3 | 1–1 | 4–0 |
| 2 | Deportivo La Coruña | 6 | 3 | 1 | 2 | 12 | 12 | 0 | 10 | Advance to knockout stage | 1–0 | — | 2–0 | 3–0 |
| 3 | PSV Eindhoven | 6 | 3 | 1 | 2 | 8 | 7 | +1 | 10 | Transfer to UEFA Cup | 1–2 | 3–2 | — | 2–0 |
| 4 | AEK Athens | 6 | 0 | 2 | 4 | 1 | 11 | −10 | 2 | | 0–0 | 1–1 | 0–1 | — |

### Group D

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | JUV | RSO | GAL | OLY |
| 1 | Juventus | 6 | 4 | 1 | 1 | 15 | 6 | +9 | 13 | Advance to knockout stage | — | 4–2 | 2–1 | 7–0 |
| 2 | Real Sociedad | 6 | 2 | 3 | 1 | 8 | 8 | 0 | 9 | Advance to knockout stage | 0–0 | — | 1–1 | 1–0 |
| 3 | Galatasaray | 6 | 2 | 1 | 3 | 6 | 8 | −2 | 7 | Transfer to UEFA Cup | 2–0 | 1–2 | — | 1–0 |
| 4 | Olympiacos | 6 | 1 | 1 | 4 | 6 | 13 | −7 | 4 | | 1–2 | 2–2 | 3–0 | — |

### Group E

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | MUN | STU | PAN | RAN |
| 1 | Manchester United | 6 | 5 | 0 | 1 | 13 | 2 | +11 | 15 | Advance to knockout stage | — | 2–0 | 5–0 | 3–0 |
| 2 | VfB Stuttgart | 6 | 4 | 0 | 2 | 9 | 6 | +3 | 12 | Advance to knockout stage | 2–1 | — | 2–0 | 1–0 |
| 3 | Panathinaikos | 6 | 1 | 1 | 4 | 5 | 13 | −8 | 4 | Transfer to UEFA Cup | 0–1 | 1–3 | — | 1–1 |
| 4 | Rangers | 6 | 1 | 1 | 4 | 4 | 10 | −6 | 4 | | 0–1 | 2–1 | 1–3 | — |

### Group F

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | RMA | POR | MAR | PTZ |
| 1 | Real Madrid | 6 | 4 | 2 | 0 | 11 | 5 | +6 | 14 | Advance to knockout stage | — | 1–1 | 4–2 | 1–0 |
| 2 | Porto | 6 | 3 | 2 | 1 | 9 | 8 | +1 | 11 | Advance to knockout stage | 1–3 | — | 1–0 | 2–1 |
| 3 | Marseille | 6 | 1 | 1 | 4 | 9 | 11 | −2 | 4 | Transfer to UEFA Cup | 1–2 | 2–3 | — | 3–0 |
| 4 | Partizan | 6 | 0 | 3 | 3 | 3 | 8 | −5 | 3 | | 0–0 | 1–1 | 1–1 | — |

### Group G

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | CHE | SPP | BES | LAZ |
| 1 | Chelsea | 6 | 4 | 1 | 1 | 9 | 3 | +6 | 13 | Advance to knockout stage | — | 0–0 | 0–2 | 2–1 |
| 2 | Sparta Prague | 6 | 2 | 2 | 2 | 5 | 5 | 0 | 8 | Advance to knockout stage | 0–1 | — | 2–1 | 1–0 |
| 3 | Beşiktaş | 6 | 2 | 1 | 3 | 5 | 7 | −2 | 7 | Transfer to UEFA Cup | 0–2 | 1–0 | — | 0–2 |
| 4 | Lazio | 6 | 1 | 2 | 3 | 6 | 10 | −4 | 5 | | 0–4 | 2–2 | 1–1 | — |

### Group H

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | MIL | CLT | BRU | AJX |
| 1 | Milan | 6 | 3 | 1 | 2 | 4 | 3 | +1 | 10 | Advance to knockout stage | — | 1–2 | 0–1 | 1–0 |
| 2 | Celta Vigo | 6 | 2 | 3 | 1 | 7 | 6 | +1 | 9 | Advance to knockout stage | 0–0 | — | 1–1 | 3–2 |
| 3 | Club Brugge | 6 | 2 | 2 | 2 | 5 | 6 | −1 | 8 | Transfer to UEFA Cup | 0–1 | 1–1 | — | 2–1 |
| 4 | Ajax | 6 | 2 | 0 | 4 | 6 | 7 | −1 | 6 | | 0–1 | 1–0 | 2–0 | — |

## Knockout phase
### Bracket

| Round of 16 | Round of 16 | Round of 16 | Round of 16 | Round of 16 | Quarter-finals | Quarter-finals | Quarter-finals | Quarter-finals | Quarter-finals | | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final |
| Bayern Munich | Bayern Munich | 1 | 0 | 1 | | | | | | | | | | | | | | |
| Real Madrid | Real Madrid | 1 | 1 | 2 | | | | | | | | | | | | | | |
| Real Madrid | Real Madrid | 1 | 1 | 2 | Real Madrid | Real Madrid | 4 | 1 | 5 | | | | | | | | | |
| | | | | | Monaco (a) | Monaco (a) | 2 | 3 | 5 | | | | | | | | | |
| Lokomotiv Moscow | Lokomotiv Moscow | 2 | 0 | 2 | Monaco (a) | Monaco (a) | 2 | 3 | 5 | | | | | | | | | |
| Monaco (a) | Monaco (a) | 1 | 1 | 2 | | | | | | | | | | | | | | |
| Monaco (a) | Monaco (a) | 1 | 1 | 2 | | Monaco | Monaco | 3 | 2 | | 5 | | | | | | | |
| | | | | | | Monaco | Monaco | 3 | 2 | | Chelsea | Chelsea | 1 | 2 | 3 | | | |
| VfB Stuttgart | VfB Stuttgart | 0 | 0 | 0 | | | | | | | Chelsea | Chelsea | 1 | 2 | 3 | | | |
| Chelsea | Chelsea | 1 | 0 | 1 | | | | | | | | | | | | | | |
| Chelsea | Chelsea | 1 | 0 | 1 | Chelsea | Chelsea | 1 | 2 | 3 | | | | | | | | | |
| | | | | | Arsenal | Arsenal | 1 | 1 | 2 | | | | | | | | | |
| Celta Vigo | Celta Vigo | 2 | 0 | 2 | Arsenal | | 1 | 1 | 2 | | | | | | | | | |
| Celta Vigo | Celta Vigo | 2 | 0 | 2 | | | 26 May – Gelsenkirchen | | | | | | | | |
| Arsenal | Arsenal | 3 | 2 | 5 | | | 26 May – Gelsenkirchen | | | | | | | | |
| Arsenal | Arsenal | 3 | 2 | 5 | | | Monaco | 0 | | | | | | | |
| | | | | | | | Monaco | 0 | | | | | | | | Porto | Porto | 3 |
| Porto | Porto | 2 | 1 | 3 | | | | | | | | | | | | Porto | Porto | 3 |
| Manchester United | Manchester United | 1 | 1 | 2 | | | | | | | | | | | |
| Manchester United | Manchester United | 1 | 1 | 2 | Porto | Porto | | 2 | 2 | | | | | | | 4 |
| | | | | | Lyon | Lyon | | 0 | 2 | 2 | | | | | | |
| Real Sociedad | Real Sociedad | 0 | 0 | 0 | Lyon | Lyon | | 0 | 2 | 2 | | | | | | |
| Lyon | Lyon | 1 | 1 | 2 | | | | | | | | | | | | |
| Lyon | Lyon | 1 | 1 | 2 | | Porto | Porto | 0 | 1 | 1 | | | | | | |
| | | | | | | Porto | | 0 | 1 | | Deportivo La Coruña | Deportivo La Coruña | 0 | 0 | 0 | | | |
| Sparta Prague | Sparta Prague | 0 | 1 | 1 | | | | | | | Deportivo La Coruña | Deportivo La Coruña | 0 | 0 | 0 | | | |
| Milan | Milan | 0 | 4 | 4 | | | | | | | | | | | | | |
| Milan | Milan | 0 | 4 | 4 | Milan | Milan | 4 | 0 | 4 | | | | | | | | | |
| | | | | | Deportivo La Coruña | Deportivo La Coruña | 1 | 4 | 5 | | | | | | | | | |
| Deportivo La Coruña | Deportivo La Coruña | 1 | 1 | 2 | Deportivo La Coruña | Deportivo La Coruña | 1 | 4 | 5 | | | | | | | | | |
| Juventus | Juventus | 0 | 0 | 0 | | | | | | | | | | | |

### Round of 16

| Team 1 | Agg. Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Bayern Munich | 1–2 | Real Madrid | 1–1 | 0–1 |
| Celta Vigo | 2–5 | Arsenal | 2–3 | 0–2 |
| Deportivo La Coruña | 2–0 | Juventus | 1–0 | 1–0 |
| Lokomotiv Moscow | 2–2 (a) | Monaco | 2–1 | 0–1 |
| Porto | 3–2 | Manchester United | 2–1 | 1–1 |
| Real Sociedad | 0–2 | Lyon | 0–1 | 0–1 |
| Sparta Prague | 1–4 | Milan | 0–0 | 1–4 |
| VfB Stuttgart | 0–1 | Chelsea | 0–1 | 0–0 |

### Quarter-finals

| Team 1 | Agg. Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Chelsea | 3–2 | Arsenal | 1–1 | 2–1 |
| Milan | 4–5 | Deportivo La Coruña | 4–1 | 0–4 |
| Porto | 4–2 | Lyon | 2–0 | 2–2 |
| Real Madrid | 5–5 (a) | Monaco | 4–2 | 1–3 |

### Semi-finals

| Team 1 | Agg. Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Monaco | 5–3 | Chelsea | 3–1 | 2–2 |
| Porto | 1–0 | Deportivo La Coruña | 0–0 | 1–0 |

### Final

The final was played on 26 May 2004 at the Arena AufSchalke in Gelsenkirchen, Germany.

## Statistics

Statistics exclude qualifying rounds.

### Top goalscorers

| Rank | Player | Team | Goals | Minutes played |
| 1 | Fernando Morientes | Monaco | 9 | 1026 |
| 2 | Dado Pršo | Monaco | 7 | 512 |
| 3 | Roy Makaay | Bayern Munich | 6 | 720 |
| 3 | Walter Pandiani | Deportivo La Coruña | 6 | 773 |
| 5 | Didier Drogba | Marseille | 5 | 515 |
| 5 | Hakan Şükür | Galatasaray | 5 | 539 |
| 5 | Juninho | Lyon | 5 | 799 |
| 5 | Thierry Henry | Arsenal | 5 | 888 |
| 9 | David Trezeguet | Juventus | 4 | 359 |
| 9 | Wesley Sonck | Ajax | 4 | 401 |
| 9 | Ruud van Nistelrooy | Manchester United | 4 | 596 |
| 9 | Albert Luque | Deportivo La Coruña | 4 | 640 |
| 9 | Benni McCarthy | Porto | 4 | 643 |
| 9 | Ronaldo | Real Madrid | 4 | 729 |
| 9 | Andriy Shevchenko | Milan | 4 | 765 |
| 9 | Kaká | Milan | 4 | 780 |
| 9 | Ludovic Giuly | Monaco | 4 | 783 |
| 9 | Robert Pires | Arsenal | 4 | 852 |
| 9 | Frank Lampard | Chelsea | 4 | 1035 |