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 |