List of African Cup of Champions Clubs finals (1966–1996)
|
Single match format
|
Year
|
Winner
|
Score
|
Runner-up
|
Venue
|
Attendance
|
Nation
|
Club
|
Club
|
Nation
|
1964–65
|
Cameroon
|
Oryx Douala
|
2–1
|
Stade Malien
|
Mali
|
Accra Stadium, Accra
|
30,000
|
Year
|
Winner
|
Score
|
Runner-up
|
Venue
|
Attendance
|
Nation
|
Club
|
Club
|
Nation
|
1966
|
Ivory Coast
|
Stade d'Abidjan
|
3–1
|
Real Bamako
|
Mali
|
Stade Municipal, Bamako
|
30,000
|
4–1
|
Stade Félix Houphouët-Boigny, Abidjan
|
40,000
|
Stade d'Abidjan won 5–4 on aggregate
|
1967
|
Ghana
|
Asante Kotoko
|
1–1
|
TP Englebert
|
Congo-Kinshasa
|
Kumasi Sports Stadium, Kumasi
|
|
2–2
|
Stade du 20 Mai, Kinshasa
|
|
w/o
|
Stade Omnisports de Yaoundé, Yaoundé
|
|
TP Englebert won after Asante Kotoko failed to appear for the 3rd match
|
1968
|
Congo-Kinshasa
|
TP Englebert
|
5–0
|
Étoile Filante
|
Togo
|
Stade du 20 Mai, Kinshasa
|
|
1–4
|
Stade Général Eyadema, Lomé
|
|
TP Englebert won 6–4 on aggregate
|
1969
|
Congo-Kinshasa
|
TP Englebert
|
2–2
|
Ismaily
|
United Arab Republic
|
Stade du 20 Mai, Kinshasa
|
80,000
|
1–3
|
Nasser Stadium, Cairo
|
130,000
|
Ismaily won 5–3 on aggregate
|
1970
|
Ghana
|
Asante Kotoko
|
1–1
|
TP Englebert
|
Congo-Kinshasa
|
Kumasi Sports Stadium, Kumasi
|
|
2–1
|
Stade du 20 Mai, Kinshasa
|
|
Asante Kotoko won 3–2 on aggregate
|
1971
|
Ghana
|
Asante Kotoko
|
3–0
|
Canon Yaoundé
|
Cameroon
|
Kumasi Sports Stadium, Kumasi
|
|
0–2
|
Stade Militaire Garoua, Yaoundé
|
|
0–1
|
Stade Militaire Garoua, Yaoundé
|
|
Canon Yaoundé won 1–0 on the 3rd match
|
1972
|
Guinea
|
Hafia FC
|
4–2
|
Simba FC
|
Uganda
|
Stade du 28 Septembre, Conakry
|
|
3–2
|
Nakivubo Stadium, Kampala
|
|
Hafia FC won 7–4 on aggregate
|
1973
|
Ghana
|
Asante Kotoko
|
4–2
|
Vita Club
|
Zaire
|
Kumasi Sports Stadium, Kumasi
|
|
0–3
|
Stade du 20 Mai, Kinshasa
|
|
Vita Club won 5–4 on aggregate
|
1974
|
Congo
|
CARA Brazzaville
|
4–2
|
Ghazl El Mahalla
|
Egypt
|
Stade de la Revolution, Brazzaville
|
|
2–1
|
El Mahalla Stadium, El-Mahalla El-Kubra
|
|
CARA Brazzaville won 6–3 on aggregate
|
1975
|
Guinea
|
Hafia FC
|
1–0
|
Enugu Rangers
|
Nigeria
|
Stade du 28 Septembre, Conakry
|
|
2–1
|
Surulere Stadium, Lagos
|
|
Hafia FC won 3–1 on aggregate
|
1976
|
Guinea
|
Hafia FC
|
3–0
|
MC Alger
|
Algeria
|
Stade du 28 Septembre, Conakry
|
30,000
|
0–3
|
Stade 5 Juillet, Algiers
|
80,000
|
MC Alger won 3–1 on penalties (3–3 on aggregate)
|
1977
|
Ghana
|
Hearts of Oak
|
0–1
|
Hafia FC
|
Guinea
|
Accra Sports Stadium, Accra
|
|
2–3
|
Stade du 28 Septembre, Conakry
|
|
Hafia FC won 4–2 on aggregate
|
1978
|
Guinea
|
Hafia FC
|
0–0
|
Canon Yaoundé
|
Cameroon
|
Stade du 28 Septembre, Conakry
|
|
0–2
|
Stade Omnisport, Yaoundé
|
|
Canon Yaoundé won 2–0 on aggregate
|
1979
|
Ghana
|
Hearts of Oak
|
1–0
|
Union Douala
|
Cameroon
|
Accra Sports Stadium, Accra
|
|
0–1
|
Stade Omnisport, Yaoundé
|
|
Union Douala won 5–3 on penalties (1–1 on aggregate)
|
1980
|
Cameroon
|
Canon Yaoundé
|
2–2
|
AS Bilima
|
Zaire
|
Stade de Garoua, Garoua
|
|
3–0
|
Stade du 20 Mai, Kinshasa
|
|
Canon Yaoundé won 5–2 on aggregate
|
1981
|
Algeria
|
JE Tizi Ouzou
|
4–0
|
Vita Club
|
Zaire
|
Stade 1er Novembre, Tizi-Ouzou
|
20,000
|
1–0
|
Stade du 20 Mai, Kinshasa
|
30,000
|
JE Tizi Ouzou won 5–0 on aggregate
|
1982
|
Egypt
|
Al Ahly
|
3–0
|
Asante Kotoko
|
Ghana
|
Cairo International Stadium, Cairo
|
60,000
|
1–1
|
Kumasi Sports Stadium, Kumasi
|
50,000
|
Al Ahly won 4–1 on aggregate
|
1983
|
Egypt
|
Al Ahly
|
0–0
|
Asante Kotoko
|
Ghana
|
Cairo International Stadium, Cairo
|
90,000
|
0–1
|
Kumasi Sports Stadium, Kumasi
|
50,000
|
Asante Kotoko won 1–0 on aggregate
|
1984
|
Egypt
|
Zamalek SC
|
2–0
|
Shooting Stars
|
Nigeria
|
Cairo International Stadium, Cairo
|
|
1–0
|
Surulere Stadium, Lagos
|
|
Zamalek SC won 3–0 on aggregate
|
1985
|
Morocco
|
FAR Rabat
|
5–2
|
AS Bilima
|
Zaire
|
Moulay Abdellah Stadium, Rabat
|
|
1–1
|
Mobutu Stadium, Lubumbashi
|
|
FAR Rabat won 6–3 on aggregate
|
1986
|
Egypt
|
Zamalek SC
|
2–0
|
Africa Sports
|
Ivory Coast
|
Cairo International Stadium, Cairo
|
|
0–2
|
Stade Félix Houphouët-Boigny, Abidjan
|
|
Zamalek SC won 4–2 on penalties (2–2 on aggregate)
|
1987
|
Sudan
|
Al-Hilal
|
0–0
|
Al Ahly
|
Egypt
|
Al-Hilal Stadium, Omdurman
|
|
0–2
|
Cairo International Stadium, Cairo
|
70,000
|
Al Ahly won 2–0 on aggregate
|
1988
|
Nigeria
|
Iwuanyanwu Nationale
|
1–0
|
Entente de Sétif
|
Algeria
|
Liberty Stadium, Ibadan
|
|
0–4
|
Stade du 17 Juin, Constantine
|
55,000
|
Entente de Sétif won 4–1 on aggregate
|
1989
|
Morocco
|
Raja Casablanca
|
1–0
|
MC Oran
|
Algeria
|
Stade Mohamed V, Casablanca
|
50,000
|
0–1
|
Stade du 19 Juin, Oran
|
45,000
|
Raja Casablanca won 4–2 on penalties (1–1 on aggregate)
|
1990
|
Algeria
|
JS Kabylie
|
1–0
|
Nkana Red Devils
|
Zambia
|
Stade 5 Juillet, Algiers
|
65,000
|
0–1
|
Independence Stadium, Lusaka
|
35,000
|
JS Kabylie won 5–3 on penalties (1–1 on aggregate)
|
1991
|
Tunisia
|
Club Africain
|
6–2
|
SC Villa
|
Uganda
|
Stade El Menzah, Tunis
|
40,000
|
1–1
|
Nakivubo Stadium, Kampala
|
25,000
|
Club Africain won 7–3 on aggregate
|
1992
|
Morocco
|
Wydad AC
|
2–0
|
Al-Hilal
|
Sudan
|
Stade Mohamed V, Casablanca
|
|
0–0
|
Al-Hilal Stadium, Omdurman
|
|
Wydad Casablanca won 2–0 on aggregate
|
1993
|
Ghana
|
Asante Kotoko
|
0–0
|
Zamalek SC
|
Egypt
|
Kumasi Sports Stadium, Kumasi
|
|
0–0
|
Cairo International Stadium, Cairo
|
|
Zamalek SC won 7–6 on penalties (0–0 on aggregate)
|
1994
|
Egypt
|
Zamalek SC
|
0–0
|
ES Tunis
|
Tunisia
|
Cairo International Stadium, Cairo
|
90 000
|
1–3
|
Stade El Menzah, Tunis
|
50 000
|
ES Tunis won 3–1 on aggregate
|
1995
|
South Africa
|
Orlando Pirates
|
2–2
|
ASEC Mimosas
|
Ivory Coast
|
FNB Stadium, Johannesburg
|
|
1–0
|
Stade Félix Houphouët-Boigny, Abidjan
|
|
Orlando Pirates won 3–2 on aggregate
|
1996
|
Nigeria
|
Shooting Stars
|
2–1
|
Zamalek SC
|
Egypt
|
Lekan Salami Stadium, Ibadan
|
30 000
|
1–2
|
Cairo International Stadium, Cairo
|
75 000
|
Zamalek SC won 5–4 on penalties (3–3 on aggregate)
|
List of CAF Champions League finals (1997–present)
|
1997
|
Ghana
|
Obuasi Goldfields
|
1–0
|
Raja Casablanca
|
Morocco
|
Len Clay Stadium, Obuasi
|
20,000
|
0–1
|
Stade Mohamed V, Casablanca
|
85,000
|
Raja Casablanca won 5–4 on penalties (1–1 on aggregate)
|
1998
|
Zimbabwe
|
Dynamos FC
|
0–0
|
ASEC Mimosas
|
Ivory Coast
|
National Sports Stadium, Harare
|
45,000
|
2–4
|
Stade Félix Houphouët-Boigny, Abidjan
|
50,000
|
ASEC Mimosas won 4–2 on aggregate
|
1999
|
Morocco
|
Raja Casablanca
|
0–0
|
ES Tunis
|
Tunisia
|
Stade Père-Jégo, Casablanca
|
10,000
|
0–0
|
Stade El Menzah, Tunis
|
50,000
|
Raja Casablanca won 4–3 on penalties (0–0 on aggregate)
|
2000
|
Tunisia
|
ES Tunis
|
1–2
|
Hearts of Oak
|
Ghana
|
Stade El Menzah, Tunis
|
30,000
|
1–3
|
Accra Sports Stadium, Accra
|
45,000
|
Hearts of Oak won 5–2 on aggregate
|
2001
|
South Africa
|
Mamelodi Sundowns
|
1–1
|
Al Ahly
|
Egypt
|
Loftus Versfeld Stadium, Pretoria
|
5,000
|
0–3
|
Cairo International Stadium, Cairo
|
80,000
|
Al Ahly won 4–1 on aggregate
|
2002
|
Morocco
|
Raja Casablanca
|
0–0
|
Zamalek SC
|
Egypt
|
Stade Mohamed V, Casablanca
|
60,000
|
0–1
|
Cairo International Stadium, Cairo
|
67,310
|
Zamalek SC won 1–0 on aggregate
|
2003
|
Nigeria
|
Enyimba
|
2–0
|
Ismaily
|
Egypt
|
Enyimba International Stadium, Aba
|
|
0–1
|
Ismailia Stadium, Ismaïlia
|
20,000
|
Enyimba won 2–1 on aggregate
|
2004
|
Tunisia
|
ES Sahel
|
2–1
|
Enyimba
|
Nigeria
|
Stade Olympique de Sousse, Sousse
|
28,000
|
1–2
|
Enyimba International Stadium, Aba
|
60,000
|
Enyimba won 5–3 on penalties (3–3 on aggregate)
|
2005
|
Tunisia
|
Étoile du Sahel
|
0–0
|
Al Ahly
|
Egypt
|
Stade Olympique de Sousse, Sousse
|
20,000
|
0–3
|
Military Academy Stadium, Cairo
|
35,000
|
Al Ahly won 3–0 on aggregate
|
2006
|
Egypt
|
Al Ahly
|
1–1
|
CS Sfaxien
|
Tunisia
|
Cairo International Stadium, Cairo
|
74,000
|
1–0
|
Stade 7 November, Radès
|
60,000
|
Al Ahly won 2–1 on aggregate
|
2007
|
Tunisia
|
ES Sahel
|
0–0
|
Al Ahly
|
Egypt
|
Stade Olympique de Sousse, Sousse
|
25,000
|
3–1
|
Cairo International Stadium, Cairo
|
74,000
|
ES Sahel won 3–1 on aggregate
|
2008
|
Egypt
|
Al Ahly
|
2–0
|
Coton Sport
|
Cameroon
|
Cairo International Stadium, Cairo
|
|
2–2
|
Roumdé Adjia Stadium, Garoua
|
|
Al Ahly won 4–2 on aggregate
|
2009
|
Nigeria
|
Heartland FC
|
2–1
|
TP Mazembe
|
DR Congo
|
Dan Anyiam Stadium, Owerri
|
10,000
|
0–1
|
Stade Frederic Kibassa Maliba, Lubumbashi
|
35,000
|
TP Mazembe won on away goals (2–2 on aggregate)
|
2010
|
DR Congo
|
TP Mazembe
|
5–0
|
ES Tunis
|
Tunisia
|
Stade Frederic Kibassa Maliba, Lubumbashi
|
50,000
|
1–1
|
Stade 7 November, Tunis
|
65,000
|
TP Mazembe won 6–1 on aggregate
|
2011
|
Morocco
|
Wydad AC
|
0–0
|
ES Tunis
|
Tunisia
|
Stade Mohamed V, Casablanca
|
70,000
|
0–1
|
Stade Olympique de Radès, Tunis
|
65,000
|
ES Tunis won 1–0 on aggregate
|
2012
|
Egypt
|
Al Ahly
|
1–1
|
ES Tunis
|
Tunisia
|
Borg El Arab Stadium, Alexandria
|
25,000
|
2–1
|
Stade Olympique de Radès, Tunis
|
31,000
|
Al Ahly won 3–2 on aggregate
|
2013
|
South Africa
|
Orlando Pirates
|
1–1
|
Al Ahly
|
Egypt
|
Orlando Stadium, Soweto
|
40,000
|
0–2
|
Osman Ahmed Osman Stadium, Cairo
|
20,000
|
Al Ahly won 3–1 on aggregate
|
2014
|
DR Congo
|
AS Vita Club
|
2–2
|
ES Sétif
|
Algeria
|
Stade Tata Raphaël, Kinshasa
|
40,000
|
1–1
|
Stade Mustapha Tchaker, Blida
|
35,000
|
ES Sétif won on away goals (3–3 on aggregate)
|
2015
|
Algeria
|
USM Alger
|
1–2
|
TP Mazembe
|
DR Congo
|
Stade Omar Hamadi, Algiers
|
15,000
|
0–2
|
Stade TP Mazembe, Lubumbashi
|
18,000
|
TP Mazembe won 4–1 on aggregate
|
2016
|
South Africa
|
Mamelodi Sundowns
|
3–0
|
Zamalek SC
|
Egypt
|
Lucas Masterpieces Moripe Stadium, Pretoria
|
30,000
|
0–1
|
Borg El Arab Stadium, Alexandria
|
70,000
|
Mamelodi Sundowns won 3–1 on aggregate
|
2017
|
Egypt
|
Al Ahly
|
1–1
|
Wydad AC
|
Morocco
|
Borg El Arab Stadium, Alexandria
|
60,000
|
0–1
|
Stade Mohamed V, Casablanca
|
68,000
|
Wydad Casablanca won 2–1 on aggregate
|
2018
|
Egypt
|
Al Ahly
|
3–1
|
ES Tunis
|
Tunisia
|
Borg El Arab Stadium, Alexandria
|
60,000
|
0–3
|
Stade Olympique de Radès, Tunis
|
60,000
|
ES Tunis won 4–3 on aggregate
|
2018–19
|
Morocco
|
Wydad AC
|
1–1
|
ES Tunis
|
Tunisia
|
Prince Moulay Abdellah Stadium, Rabat
|
50,000
|
Abandoned[a]
|
Stade Olympique de Radès, Tunis
|
60,000
|
ES Tunis were declared champions after second leg was abandoned
|
Single match format
|
Year
|
Winner
|
Score
|
Runner-up
|
Venue
|
Attendance
|
Nation
|
Club
|
Club
|
Nation
|
2019–20
|
Egypt
|
Al Ahly
|
2–1
|
Zamalek SC
|
Egypt
|
Cairo International Stadium, Cairo
|
0[b]
|
2020–21
|
Egypt
|
Al Ahly
|
3–0
|
Kaizer Chiefs
|
South Africa
|
Stade Mohamed V, Casablanca
|
0[c]
|
2021–22
|
Morocco
|
Wydad AC
|
2–0
|
Al Ahly
|
Egypt
|
Stade Mohamed V, Casablanca
|
45.000
|
Two-legged format
|
Season
|
Home
|
Score
|
Away
|
Venue
|
Attendance
|
Nation
|
Club
|
Club
|
Nation
|
2022–23
|
Egypt
|
Al Ahly
|
2–1
|
Wydad AC
|
Morocco
|
Cairo International Stadium, Cairo
|
50.000
|
1–1
|
Stade Mohamed V, Casablanca
|
45.000
|
Al Ahly won 3–2 on aggregate
|
2023–24
|
Tunisia
|
ES Tunis
|
0–0
|
Al Ahly
|
Egypt
|
Hammadi Agrebi Stadium, Tunis
|
35,000
|
0–1
|
Cairo International Stadium, Cairo
|
52,000
|
Al Ahly won 1–0 on aggregate
|