
CAF African Champions League Finals 1964-2024
Table of the African Champions League final four places from 1964 to 2024 with
List of CAF African Champions League Winners by Year.
| Season | Winner | Score | Runner-Up | Losing Semi Finalists / Group Stage Semi Finalists | |
|---|---|---|---|---|---|
| Lost to winner / GS semi finalist* | Lost to runner-up / GS semi finalist* | ||||
| 1964 | Oryx Douala | 2 - 1 | Stade Malien | Real Republicans | Cotton Factory Club |
| 1966 | Stade Abidjan | 1 - 3 | AS Real Bamako | Al Hilal | Oryx Douala |
| 4 - 1 | |||||
| 1967 | TP Englebert | 1 - 1 | Asante Kotoko | Djoliba AC | Saint-George SA |
| 2 - 2 | |||||
| 1968 | TP Englebert | 1 - 1 | Etoile Filante de Lomé | FAR Rabat | Abaluhya United |
| 2 - 2 | |||||
| 1969 | Al-Ismaily | 2 - 2 | TP Englebert | Asante Kotoko | Conacry II |
| 3 - 1 | |||||
| 1970 | Asante Kotoko | 2 - 2 | TP Englebert | Al-Ismaily | AS Kaloum Star |
| 3 - 1 | |||||
| 1971 | Canon Yaoundé | 0 - 3 | Asante Kotoko | ASEC Mimosas | Great Olympics |
| 2 - 0 | |||||
| 1 - 0 | |||||
| 1972 | Hafia Conakry | 4 - 2 | Simba FC | TP Mazembe | Hearts of Oak |
| 3 - 2 | |||||
| 1973 | AS Vita Club | 2 - 4 | Asante Kotoko | Léopards Douala | Kenya Breweries |
| 3 - 0 | |||||
| 1974 | CARA Brazzaville | 4 - 2 | Ghazl Al-Mehalla | ASC Jeanne d'Arc | Simba SC |
| 2 - 1 | |||||
| 1975 | Hafia Conakry | 1 - 0 | Enugu Rangers | Lomé 1 | Ghazl Al-Mehalla |
| 2 - 1 | |||||
| 1976 | MC Algiers | 0 - 3 | Hafia Conakry | ASEC Mimosas | Enugu Rangers |
| 3 - 0 (3-0 pen) | |||||
| 1977 | Hafia Conakry | 3 - 2 | Hearts of Oak | Lomé 1 | Mufulira Wanderers |
| 1 - 0 | |||||
| 1978 | Canon Yaoundé | 0 - 0 | Hafia Conakry | Enugu Rangers | AS Vita Club |
| 2 - 0 | |||||
| 1979 | Union Douala | 1 - 0 | Hearts of Oak | DC Motema Pembe | US Gorée |
| 0 - 1 (5-3 pen) | |||||
| 1980 | Canon Yaoundé | 2 - 2 | AS Bilima | Bendel Insurance | Union Douala |
| 3 - 0 | |||||
| 1981 | JE Tizi-Ouzou | 4 - 0 | AS Vita Club | Al Ahly | AS Kaloum Star |
| 1 - 0 | |||||
| 1982 | Al-Ahly | 3 - 0 | Asante Kotoko | Enugu Rangers | FC Saint Eloi Lupopo |
| 1 - 1 | |||||
| 1983 | Asante Kotoko | 0 - 0 | Al-Ahly | Nkana FC | ASC Diaraf |
| 1 - 0 | |||||
| 1984 | Al-Zamalek | 2 - 0 | Shooting Stars FC | JS Kabylie | AC Semassi |
| 1 - 0 | |||||
| 1985 | FAR Rabat | 5 - 2 | AS Bilima | Al-Zamalek | US Gorée |
| 1 - 1 | |||||
| 1986 | Al-Zamalek | 2 - 0 | Africa Sports | Canon Yaoundé | Nkana FC |
| 0 - 2 (4-2 pen) | |||||
| 1987 | Al-Ahly | 0 - 0 | Al Hilal Omdurman | Asante Kotoko | Canon Yaoundé |
| 2 - 2 | |||||
| 1988 | ES Setif | 0 - 1 | Iwuanyanwu Nationale | Al-Ahly | FAR Rabat |
| 4 - 0 | |||||
| 1989 | Raja Casablanca | 1 - 0 | MC Oran | Tonnerre Yaoundé | Nkana FC |
| 0 - 1 (4-2 pen) | |||||
| 1990 | JS Kabylie | 1 - 0 | Nkana FC | Asante Kotoko | Iwuanyanwu Nationale |
| 0 - 1 (5-3 pen) | |||||
| 1991 | Club Africain | 6 - 2 | Villa SC | Nkana FC | Iwuanyanwu Nationale |
| 1 - 1 | |||||
| 1992 | Wydad Casablanca | 2 - 0 | Al Hilal Omdurman | ASEC Mimosas | Al-Ismaily |
| 0 - 0 | |||||
| 1993 | Al-Zamalek | 0 - 0 | Asante Kotoko | Stationery Stores | ASEC Mimosas |
| 0 - 0 (7-6 pen) | |||||
| 1994 | Espérance | 0 - 0 | Al-Zamalek | MC Oran | Nkana FC |
| 3 - 1 | |||||
| 1995 | Orlando Pirates | 2 - 2 | ASEC Mimosas | Express FC | Al-Ismaily |
| 1 - 0 | |||||
| 1996 | Al-Zamalek | 1 - 2 | Shooting Stars FC | CS Sfaxien | JS Kabylie |
| 2 - 1 (5-4 pen) | |||||
| 1997 | Raja Casablanca | 1st leg: 0-1 | Obuasi Goldfields | USM Alger | Al-Zamalek |
| (Morocco) | 2nd leg: 1-0 (5-4p) | (Ghana) | (Algeria) | (Egypt) | |
| 1998 | ASEC Abidjan | 1st leg: 4-2 | Dynamos FC | Manning Rangers | Hearts of Oak |
| (Côte d'Ivoire) | 2nd leg: 0-0 | (Zimbabwe) | (RSA) | (Ghana) | |
| 1999 | Raja Casablanca | 1st leg: 0-0 | Espérance | Al-Ahly | ASEC Abidjan |
| (Morocco) | 2nd leg: 0-0 (4-3p) | (Tunisia) | (Egypt) | (Côte d'Ivoire) | |
| 2000 | Hearts of Oak | 1st leg: 2-1 | Espérance | Al-Ahly | Mamelodi Sundowns |
| (Ghana) | 2nd leg: 3-1 | (Tunisia) | (Egypt) | (RSA) | |
| 2001* | Al-Ahly | 1st leg: 1-1 | Mamelodi Sundowns | Espérance | Atlético Petróleo |
| (Egypt) | 2nd leg: 3-0 | (RSA) | (Tunisia) | Luanda (Angola) | |
| 2002 | Al-Zamalek | 1st leg: 0-0 | Raja Casablanca | TP Mazembe | ASEC Abidjan |
| (Egypt) | 2nd leg: 1-0 | (Morocco) | (DR Congo) | (Côte d'Ivoire) | |
| 2003 | Enyimba | 1st leg: 2-0 | Ismaily SC | USM Alger | Espérance |
| (Nigeria) | 2nd leg: 0-1 | (Egypt) | (Algeria) | (Tunisia) | |
| 2004 | Enyimba | 1st leg: 1-2 | Étoile Sahel | Espérance | ASC Jeanne d'Arc |
| (Nigeria) | 2nd leg: 2-1 (5-3p) | (Tunisia) | (Tunisia) | (Senegal) | |
| 2005 | Al-Ahly | 1st leg: 0-0 | Étoile Sahel | Al-Zamalek | Raja Casablanca |
| (Egypt) | 2nd leg: 3-0 | (Tunisia) | (Egypt) | (Morocco) | |
| 2006 | Al-Ahly | 1st leg: 1-1 | Club Sportif Sfaxien | ASEC Mimosas | Orlando Pirates |
| (Egypt) | 2nd leg: 1-0 | (Tunisia) | (Côte d'Ivoire) | (South Africa) | |
| 2007 | Étoile Sahel | 1st leg: 0-0 | Al-Ahly | Al Hilal | Al Ittihad |
| (Tunisia) | 2nd leg: 3-1 | (Egypt) | (Sudan) | (Libya) | |
| 2008 | Al-Ahly | 1st leg: 2-0 | Cotonsport Garoua | Enyimba | Dynamoes |
| (Egypt) | 2nd leg: 2-2 | (Cameroon) | (Nigeria) | (Zimbabwe) | |
| 2009 | TP Mazembe | 1st leg: 1-2 | Heartland FC | Al-Hilal | Kano Pillars |
| (DR Congo) | 2nd leg: 1-0 (ag) | (Nigeria) | (Sudan) | (Nigeria) | |
| 2010 | TP Mazembe | 1st leg: 5-0 | ES Tunis | JS Kabylie | Al-Ahly |
| (DR Congo) | 2nd leg: 1-1 | (Tunisia) | (Algeria) | (Egypt) | |
| 2011 | Espérance ST | 1st leg: 0-0 | Wydad Casablanca | Enyimba | Al-Hilal |
| (Tunisia) | 2nd leg: 1-0 | (Morocco) | (Nigeria) | (Sudan) | |
| 2012 | Al-Ahly | 1st leg: 1-1 | Espérance ST | Sunshine Stars | TP Mazembe |
| (Egypt) | 2nd leg: 2-1 | (Tunisia) | (Nigeria) | (DR Congo) | |
| 2013 | Al-Ahly | 1st leg: 1-1 | Orlando Pirates | Cotonsport Garoua | Espérance ST |
| (Egypt) | 2nd leg: 2-0 | (RSA) | (Cameroon) | (Tunisia) | |
| 2014 | ES Sétif (2nd Title) | 1st leg: 2-2 | AS Vita Club | 1º de Agosto | ES Sétif |
| (Algeria) | 2nd leg: 1-1 | (DR Congo) | (Angola) | (Algeria) | |
| 2015 | TP Mazembe | 1st leg: 2-1 | USM Alger | Al-Merrikh | Al-Hilal |
| (DR Congo) | 2nd leg: 2-0 | (Algeria) | (Sudan) | (Sudan) | |
| 2016 | Mamelodi Sundowns | 1st leg: 3-0 | Zamalek | ZESCO United | Wydad Casablanca |
| (South Africa) | 2nd leg: 0-1 | (Egypt) | (Zambia) | (Morocco) | |
| 2017 | Wydad Casablanca | 1st leg: 1-1 | Al-Ahly | USM Alger | Étoile du Sahel |
| (Morroco) | 2nd leg: 1-0 | (Egypt) | (Algeria) | (Tunisia) | |
| 2018 | Espérance de Tunis | 1st leg: 1-3 | Al-Ahly | 1º de Agosto | ES Sétif |
| (Morroco) | 2nd leg: 3-0 | (Egypt) | (Angola) | (Algeria) | |
| 2019 | Espérance de Tunis | 1st leg: 1-1 | Wydad Casablanca | TP Mazembe | Mamelodi Sundowns |
| (Morroco) | 2nd leg:Abandoned | (Morroco) | (DR Congo) | (South Africa) | |
| 2020 | Al-Ahly | 2 - 1 | Al-Zamalek | Wydad Casablanca | Raja Casablanca |
| (Egypt) | (Egypt) | (Morroco) | (Morocco) | ||
| 2021 | Al-Ahly | 3 - 0 | Kaizer Chiefs | Espérance de Tunis | Wydad Casablanca |
| (Egypt) | (South Africa) | (Tunisia) | (Morroco) | ||
| 2022 | Wydad Casablanca | 2 - 0 | Al-Ahly | Petro de Luanda | ES Sétif |
| (Morroco) | (Egypt) | (Angola) | (Algeria) | ||
| 2023 | Al-Ahly | 1st leg: 2-1 | Wydad Casablanca | Espérance de Tunis | Mamelodi Sundowns |
| (Egypt) | 2nd leg: 1-1 | (Morroco) | (Tunisia) | (South Africa) | |
| 2024 | Al-Ahly | 1st leg: 0-0 | Espérance ST | TP Mazembe | Mamelodi Sundowns |
| (Egypt) | 2nd leg: 1-0 | (Tunisia) | (DR Congo) | (South Africa) | |
*Note: Before 2001 two groups were used instead of semi-finals, the winners of each group passed to the finals. From 2001 the runners-up of each group

