| List of African Cup of Champions Clubs finals (1964–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 |
| Two-legged format |
| Season | Home | Score | Away | Venue | Attendance |
| Nation | Club | Club | Nation |
| 1966 | Ivory Coast | Stade d'Abidjan | 1–3 | Real Bamako | Mali | Stade Municipal, Bamako | |
| 4–1 | Stade Félix Houphouët-Boigny, Abidjan | |
| Stade d'Abidjan won 5–4 on aggregate |
| 1967 | Congo-Kinshasa | TP Englebert | 1–1 | Asante Kotoko | Ghana | 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 | United Arab Republic | Ismaily | 2–2 | TP Englebert | Congo-Kinshasa | Stade du 20 Mai, Kinshasa | |
| 3–1 | 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 | Cameroon | Canon Yaoundé | 0–3 | Asante Kotoko | Ghana | Kumasi Sports Stadium, Kumasi | |
| 2–0 | Stade Militaire Garoua, Yaoundé | |
| 1–0 | 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 | Zaire | Vita Club | 2–4 | Asante Kotoko | Ghana | Kumasi Sports Stadium, Kumasi | |
| 3–0 | 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 | Algeria | MC Alger | 0–3 | Hafia FC | Guinea | Stade du 28 Septembre, Conakry | 30,000 |
| 3–0 | Stade 5 Juillet, Algiers | 80,000 |
| MC Alger won 3–1 on penalties (3–3 on aggregate) |
| 1977 | Guinea | Hafia FC | 1–0 | Hearts of Oak | Ghana | Accra Sports Stadium, Accra | |
| 3–2 | Stade du 28 Septembre, Conakry | |
| Hafia FC won 4–2 on aggregate |
| 1978 | Cameroon | Canon Yaoundé | 0–0 | Hafia FC | Guinea | Stade du 28 Septembre, Conakry | |
| 2–0 | Stade Omnisport, Yaoundé | |
| Canon Yaoundé won 2–0 on aggregate |
| 1979 | Cameroon | Union Douala | 0–1 | Hearts of Oak | Ghana | Accra Sports Stadium, Accra | |
| 1–0 | 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 | Ghana | Asante Kotoko | 0–0 | Al Ahly | Egypt | Cairo International Stadium, Cairo | 90,000 |
| 1–0 | 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 | Egypt | Al Ahly | 0–0 | Al-Hilal | Sudan | Al-Hilal Stadium, Omdurman | |
| 2–0 | Cairo International Stadium, Cairo | 70,000 |
| Al Ahly won 2–0 on aggregate |
| 1988 | Algeria | Entente de Sétif | 0–1 | Iwuanyanwu Nationale | Nigeria | Liberty Stadium, Ibadan | |
| 4–0 | 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 | Egypt | Zamalek SC | 0–0 | Asante Kotoko | Ghana | Kumasi Sports Stadium, Kumasi | |
| 0–0 | Cairo International Stadium, Cairo | |
| Zamalek SC won 7–6 on penalties (0–0 on aggregate) |
| 1994 | Tunisia | ES Tunis | 0–0 | Zamalek SC | Egypt | Cairo International Stadium, Cairo | 90 000 |
| 3–1 | 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 | Egypt | Zamalek SC | 1–2 | Shooting Stars | Nigeria | Lekan Salami Stadium, Ibadan | 30 000 |
| 2–1 | 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 | Morocco | Raja Casablanca | 0–1 | Obuasi Goldfields | Ghana | Len Clay Stadium, Obuasi | 20,000 |
| 1–0 | Stade Mohamed V, Casablanca | 85,000 |
| Raja Casablanca won 5–4 on penalties (1–1 on aggregate) |
| 1998 | Ivory Coast | ASEC Mimosas | 0–0 | Dynamos FC | Zimbabwe | National Sports Stadium, Harare | 45,000 |
| 4–2 | 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 | Ghana | Hearts of Oak | 2–1 | ES Tunis | Tunisia | Stade El Menzah, Tunis | 30,000 |
| 3–1 | Accra Sports Stadium, Accra | 45,000 |
| Hearts of Oak won 5–2 on aggregate |
| 2001 | Egypt | Al Ahly | 1–1 | Mamelodi Sundowns | South Africa | Loftus Versfeld Stadium, Pretoria | 5,000 |
| 3–0 | Cairo International Stadium, Cairo | 80,000 |
| Al Ahly won 4–1 on aggregate |
| 2002 | Egypt | Zamalek SC | 0–0 | Raja Casablanca | Morocco | Stade Mohamed V, Casablanca | 60,000 |
| 1–0 | 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 | Nigeria | Enyimba | 1–2 | ES Sahel | Tunisia | Stade Olympique de Sousse, Sousse | 28,000 |
| 2–1 | Enyimba International Stadium, Aba | 60,000 |
| Enyimba won 5–3 on penalties (3–3 on aggregate) |
| 2005 | Egypt | Al Ahly | 0–0 | Étoile du Sahel | Tunisia | Stade Olympique de Sousse, Sousse | 20,000 |
| 3–0 | 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 | DR Congo | TP Mazembe | 1–2 | Heartland FC | Nigeria | Dan Anyiam Stadium, Owerri | 10,000 |
| 1–0 | 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 | Tunisia | ES Tunis | 0–0 | Wydad AC | Morocco | Stade Mohamed V, Casablanca | 70,000 |
| 1–0 | 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 | Egypt | Al Ahly | 1–1 | Orlando Pirates | South Africa | Orlando Stadium, Soweto | 40,000 |
| 2–0 | Osman Ahmed Osman Stadium, Cairo | 20,000 |
| Al Ahly won 3–1 on aggregate |
| 2014 | Algeria | ES Sétif | 2–2 | AS Vita Club | DR Congo | 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 | DR Congo | TP Mazembe | 2–1 | USM Alger | Algeria | Stade Omar Hamadi, Algiers | 15,000 |
| 2–0 | 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 | Morocco | Wydad AC | 1–1 | Al Ahly | Egypt | Borg El Arab Stadium, Alexandria | 60,000 |
| 1–0 | Stade Mohamed V, Casablanca | 68,000 |
| Wydad Casablanca won 2–1 on aggregate |
| 2018 | Tunisia | ES Tunis | 1–3 | Al Ahly | Egypt | Borg El Arab Stadium, Alexandria | 60,000 |
| 3–0 | Stade Olympique de Radès, Tunis | 60,000 |
| ES Tunis won 4–3 on aggregate |
| 2018–19 | Tunisia | ES Tunis | 1–1 | Wydad AC | Morocco | 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 | Egypt | Al Ahly | 0–0 | ES Tunis | Tunisia | Hammadi Agrebi Stadium, Tunis | 35,000 |
| 1–0 | Cairo International Stadium, Cairo | 52,000 |
| Al Ahly won 1–0 on aggregate |
| 2024–25 | Egypt | Pyramids | 1–1 | Mamelodi Sundowns | South Africa | Loftus Versfeld Stadium, Pretoria | 50,000 |
| 2–1 | 30 June Stadium, Cairo | 25,000 |
| Pyramids won 3–2 on aggregate |