# 2004 CAF Champions League

The 2004 CAF Champions League was the 40th edition of the CAF Champions League, the Africa's premier club football tournament prize organized by the Confederation of African Football (CAF). Enyimba of Nigeria defeated Étoile du Sahel of Tunisia in the final to win their second title.

## Qualifying rounds
### Preliminary round

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| US Stade Tamponnaise | w/o$^1$ | AS Port-Louis 2000 | – | – |
| Supersport United | 6–0 | FC Civics | 5–0 | 1–0 |
| Saint George | 2–3 | Al-Hilal | 1–2 | 1–1 |
| Ecoredipharm | 0–2 | St.-Michel United | 0–0 | 0–2 |
| Matlama FC | 0–7 | Orlando Pirates | 0–3 | 0–4 |
| Simba SC | 2–3 | Zanaco FC | 1–0 | 1–3 |
| Bakili Bullets | 2–1 | Villa SC | 2–1 | 0–0 |
| APR FC | 11–3 | Anseba S.C. | 7–1 | 4–2 |
| Dragons de l'Ouémé | 1–1 (a) | AS Douanes | 1–1 | 0–0 |
| Al Ittihad Tripoli | 1–2 | Sahel SC | 1–0 | 0–2 |
| Saint Michel de Ouenzé | 2–2 (4-3 p) | US Bitam | 2–0 | 0–2 |
| ASFA Yennenga | 3–2 | Julius Berger | 3–2 | 0–0 |
| Asante Kotoko | w/o$^2$ | AS Tempête Mocaf | – | – |
| Armed Forces | 0–6 | Jeanne d'Arc | 0–3 | 0–3 |
| AS Vita Club | w/o$^2$ | Ulinzi Stars | – | – |
| Stade Malien | 0–2 | Hearts of Oak | 0–0 | 0–2 |
| Atlético Sport Aviação | 2–1 | SC Cilu | 1–1 | 1–0 |
| Hassania Agadir | 10–0 | ASC Nasr de Sebkha | 7–0 | 3–0$^3$ |
| ASFAG | 1–3 | ASC Diaraf | 0–1 | 1–2 |
| Amazulu FC | 7–4 | Maxaquene | 3–1 | 4–3 |
| Petro Atlético | 6–2 | Atlético Malabo | 3–1 | 3–1 |
$^1$ US Stade Tamponnaise refused to participate; they were banned from CAF competitions for two years and fined $3000.
$^2$ AS Tempête Mocaf and Ulinzi Stars withdrew before 1st leg.
$^3$ ASC Nasr de Sebkha withdrew before the 2nd leg.

### First round

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| AS Port-Louis 2000 | 1–3 | Supersport United | 1–1 | 0–2 |
| Al Ahly | 0–1 | Al-Hilal | 0–1 | 0–0 |
| St.-Michel United | 3–8 | Orlando Pirates | 2–3 | 1–5 |
| Zanaco FC | 1–1 (5-6 p) | Bakili Bullets | 0–1 | 1–0 |
| Zamalek | 4–6 | APR FC | 3–2 | 1–4 |
| Africa Sports National | 5–1 | AS Douanes | 4–1 | 1–0 |
| ES Tunis | 5–0 | Sahel SC | 4–0 | 1–0 |
| Coton Sport FC | 4–2 | Saint Michel de Ouenzé | 4–1 | 0–1 |
| USM Alger | 10–3 | ASFA Yennenga | 8–1 | 2–2 |
| ASEC Mimosas | 1–1 (a) | Asante Kotoko | 1–1 | 0–0 |
| Raja Casablanca | 2–2 (4-5 p) | Jeanne d'Arc | 2–0 | 0–2 |
| Canon Yaoundé | 4–1 | AS Vita Club | 3–0 | 1–1 |
| Hearts of Oak | 5–2 | Atlético Sport Aviação | 4–1 | 1–1 |
| Étoile du Sahel | 2–0 | Hassania Agadir | 2–0 | 0–0 |
| Enyimba | 3–2 | ASC Diaraf | 3–0 | 0–2 |
| Amazulu FC | 1–2 | Petro Atlético | 0–0 | 1–2 |

### Second round

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Supersport United | 2–0 | Al-Hilal | 2–0 | 0–0 |
| Orlando Pirates | 2–2 (a) | Bakili Bullets | 2–1 | 0–1 |
| APR FC | 1–1 (1-3 p) | Africa Sports National | 1–0 | 0–1 |
| ES Tunis | 3–1 | Coton Sport FC | 3–0 | 0–1 |
| USM Alger | 2–2 (3-1 p) | Asante Kotoko | 2–0 | 0–2 |
| Jeanne d'Arc | 3–2 | Canon Yaoundé | 2–0 | 1–2 |
| Hearts of Oak | 1–1 (4-5 p) | Étoile du Sahel | 1–0 | 0–1 |
| Enyimba | 3–2 | Petro Atlético | 1–1 | 2–1 |

## Group stage

* Key to colours in group tables
* Group winners and runners-up advance to the Knockout stage

### Group A

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | ESS | ENY | AFR | BUL |
| 1 | Étoile du Sahel | 6 | 3 | 2 | 1 | 8 | 5 | +3 | 8 | Advance to knockout stage | — | | | |
| 2 | Enyimba | 6 | 2 | 2 | 2 | 11 | 4 | +7 | 6 | Advance to knockout stage | | — | | |
| 3 | Africa Sports National | 6 | 2 | 1 | 3 | 6 | 10 | −4 | 5 | | | | — | |
| 4 | Bakili Bullets | 6 | 1 | 3 | 2 | 5 | 11 | −6 | 5 | | | | | — |

### Group B

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | ESP | JEA | USM | SSU |
| 1 | ES Tunis | 6 | 4 | 0 | 2 | 12 | 7 | +5 | 8 | Advance to knockout stage | — | 5–0 | 2–1 | 2–0 |
| 2 | Jeanne d'Arc | 6 | 3 | 2 | 1 | 8 | 9 | −1 | 8 | Advance to knockout stage | 2–1 | — | 2–1 | 2–0 |
| 3 | USM Alger | 6 | 2 | 1 | 3 | 8 | 8 | 0 | 5 | | 3–0 | 1–1 | — | 2–1 |
| 4 | Supersport United | 6 | 1 | 1 | 4 | 5 | 9 | −4 | 3 | | 1–2 | 1–1 | 2–0 | — |

## Knockout stage
### Bracket

| Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final | Final |
| Jeanne d'Arc | 2 | 0 | 2 | | | | |
| Étoile du Sahel | 1 | 3 | 4 | | | | |
| Étoile du Sahel | 1 | 3 | 4 | Étoile du Sahel | 2 | 1 | 3 (3) |
| | | | | Enyimba (p) | 1 | 2 | 3 (5) |
| Enyimba (p) | 1 | 1 | 2 (6) | Enyimba (p) | 1 | 2 | 3 (5) |
| ES Tunis | 1 | 1 | 2 (5) | | | | |

### Semifinals

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Jeanne d'Arc | 2–4 | Étoile du Sahel | 2–1 | 0–3 |
| Enyimba | 2–2 (6-5 p) | ES Tunis | 1–1 | 1–1 |

### Final
## Best Scorers

The top scorers from the 2004 CAF Champions League are as follows:
| Rank | Name | Team | Goals |
| 1 | Mamadou Diallo | USM Alger | 10 |
| 2 | Ali Zitouni | ES Tunis | 9 |
| 3 | Lamine Diarra | Jeanne d'Arc | 6 |
| 3 | Makhete Ndiaye | Jeanne d'Arc | 6 |
| 3 | Abram Raselemane | Supersport United | 6 |
| 6 | Dame N'Doye | Jeanne d'Arc | 5 |
| 6 | Benedict Vilakazi | Orlando Pirates | 5 |
| 8 | Blaise Kouassi | Africa Sports | 4 |
| 8 | Emeka Nwanna | Enyimba | 4 |
| 8 | Bheka Phakathi | Orlando Pirates | 4 |
| 8 | Kandia Traoré | Étoile du Sahel | 4 |
| 8 | Emeka Opara | Étoile du Sahel | 4 |