# 2024 CAF Champions League final

The 2024 CAF Champions League final were the final matches of the 2023–24 CAF Champions League, the 60th edition of Africa's premier club football tournament organized by the Confederation of African Football (CAF), and the 28th edition under the current CAF Champions League title.

## Teams

In the following table, finals until 1996 were in the African Cup of Champions Club era, since 1997 were in the CAF Champions League era.
| Team | Zone | Previous finals appearances (bold indicates winners) |
| Espérance de Tunis | UNAF (North Africa) | 8 (1994, 1999, 2000, 2010, 2011, 2012, 2018, 2019) |
| Al Ahly | UNAF (North Africa) | 16 (1982, 1983, 1987, 2001, 2005, 2006, 2007, 2008, 2012, 2013, 2017, 2018, 2020, 2021, 2022, 2023) |

## Venues

| Stade Hammadi Agrebi in Tunis, Tunisia, hosted the first leg. | Cairo International Stadium in Cairo, Egypt, hosted the second leg. |

## Road to the final

Note: In all results below, the score of the finalist is given first (H: home; A: away).
| Espérance de Tunis | Espérance de Tunis | Espérance de Tunis | Espérance de Tunis | Round | Al Ahly | Al Ahly | Al Ahly | Al Ahly |
| Opponent | Agg | 1st leg | 2nd leg | Qualifying rounds | Opponent | Agg | 1st leg | 2nd leg |
| Bye | Bye | Bye | Bye | First round | Bye | Bye | Bye | Bye |
| AS Douanes Burkina Faso | 1–0 | 1–0 (A) | 0–0 (H) | Second round | Saint George | 7–0 | 3–0 (A) | 4–0 (H) |
| Opponent | Result | Result | Result | Group stage | Opponent | Result | Result | Result |
| Étoile du Sahel | 2–0 (H) | 2–0 (H) | 2–0 (H) | Matchday 1 | Medeama | 3–0 (H) | 3–0 (H) | 3–0 (H) |
| Al Hilal | 1–3 (A) | 1–3 (A) | 1–3 (A) | Matchday 2 | Young Africans | 1–1 (A) | 1–1 (A) | 1–1 (A) |
| Petro de Luanda | 0–0 (H) | 0–0 (H) | 0–0 (H) | Matchday 3 | CR Belouizdad | 0–0 (H) | 0–0 (H) | 0–0 (H) |
| Petro de Luanda | 0–0 (A) | 0–0 (A) | 0–0 (A) | Matchday 4 | CR Belouizdad | 0–0 (A) | 0–0 (A) | 0–0 (A) |
| Étoile du Sahel | 2–0 (A) | 2–0 (A) | 2–0 (A) | Matchday 5 | Medeama | 1–0 (A) | 1–0 (A) | 1–0 (A) |
| Al Hilal | 1–0 (H) | 1–0 (H) | 1–0 (H) | Matchday 6 | Young Africans | 1–0 (H) | 1–0 (H) | 1–0 (H) |
| Group C runners-up Pos Teamvte Pld Pts 1 Petro de Luanda 6 12 2 Espérance de Tunis 6 11 3 Al Hilal 6 5 4 Étoile du Sahel 6 4 Source: CAF | Group C runners-up Pos Teamvte Pld Pts 1 Petro de Luanda 6 12 2 Espérance de Tunis 6 11 3 Al Hilal 6 5 4 Étoile du Sahel 6 4 Source: CAF | Group C runners-up Pos Teamvte Pld Pts 1 Petro de Luanda 6 12 2 Espérance de Tunis 6 11 3 Al Hilal 6 5 4 Étoile du Sahel 6 4 Source: CAF | Group C runners-up Pos Teamvte Pld Pts 1 Petro de Luanda 6 12 2 Espérance de Tunis 6 11 3 Al Hilal 6 5 4 Étoile du Sahel 6 4 Source: CAF | Final standings | Group D winners Pos Teamvte Pld Pts 1 Al Ahly 6 12 2 Young Africans 6 8 3 CR Belouizdad 6 8 4 Medeama 6 4 Source: CAF | Group D winners Pos Teamvte Pld Pts 1 Al Ahly 6 12 2 Young Africans 6 8 3 CR Belouizdad 6 8 4 Medeama 6 4 Source: CAF | Group D winners Pos Teamvte Pld Pts 1 Al Ahly 6 12 2 Young Africans 6 8 3 CR Belouizdad 6 8 4 Medeama 6 4 Source: CAF | Group D winners Pos Teamvte Pld Pts 1 Al Ahly 6 12 2 Young Africans 6 8 3 CR Belouizdad 6 8 4 Medeama 6 4 Source: CAF |
| Opponent | Agg | 1st leg | 2nd leg | Knockout stage | Opponent | Agg | 1st leg | 2nd leg |
| ASEC Mimosas | 0–0 (4–2 p) | 0–0 (H) | 0–0 (A) | Quarter-finals | Simba | 3–0 | 1–0 (A) | 2–0 (H) |
| Mamelodi Sundowns | 2–0 | 1–0 (H) | 1–0 (A) | Semi-finals | TP Mazembe | 3–0 | 0–0 (A) | 3–0 (H) |

## Format

The final was played on a home-and-away two-legged basis.
If the aggregate score was tied after the second leg, the away goals rule was applied, and if still tied, extra time was played, and a penalty shoot-out was used to determine the winner.

## Matches
### First leg
#### Details

| Espérance de Tunis | Al Ahly |
| GK | 1 | Amenallah Memmiche |
| DF | 2 | Mohamed Ben Ali | | 69' |
| DF | 5 | Yassine Meriah |
| MF | 8 | Houssem Tka | | 69' |
| FW | 9 | Rodrigo Rodrigues | 70' | 90+2' |
| MF | 10 | Yan Sasse | | 82' |
| DF | 15 | Mohamed Amine Tougai |
| FW | 18 | Houssam Ghacha |
| DF | 20 | Mohamed Amine Ben Hamida | | 90+2' |
| MF | 25 | Ghailene Chaalali (c) |
| MF | 38 | Roger Aholou | 16' |
| Substitutes: ||
| FW | 11 | Oussama Bouguerra | | 82' |
| GK | 12 | Moez Ben Cherifia |
| DF | 13 | Raed Bouchniba | | 69' |
| DF | 22 | Hani Amamou |
| FW | 27 | Kebba Sowe |
| FW | 29 | Mohamed Ali Ben Hammouda | | 90+2' |
| MF | 31 | Zakaria El Ayeb | | 69' |
| MF | 36 | Onuche Ogbelu | | 90+2' |
| FW | 37 | André Bukia |
| Manager: ||
| Miguel Cardoso ||
| DF | 5 | Ramy Rabia (c) |
| MF | 8 | Akram Tawfik |
| FW | 10 | Percy Tau | | 81' |
| MF | 13 | Marwan Attia |
| FW | 14 | Hussein El Shahat |
| DF | 21 | Ali Maâloul | | 7' |
| MF | 22 | Emam Ashour | | 81' |
| DF | 24 | Mohamed Abdelmonem |
| DF | 30 | Mohamed Hany | 39' |
| GK | 31 | Mostafa Shobeir |
| FW | 39 | Wessam Abou Ali |
| Substitutes: ||
| GK | 1 | Mohamed El Shenawy |
| DF | 4 | Mahmoud Metwalli |
| DF | 6 | Yasser Ibrahim |
| FW | 7 | Mahmoud Kahraba |
| FW | 12 | Reda Slim | | 81' |
| MF | 15 | Aliou Dieng |
| MF | 19 | Mohamed Magdy Afsha | | 81' |
| FW | 27 | Anthony Modeste |
| DF | 28 | Karim Fouad | 33' | 7' |
| Manager: ||
| Marcel Koller ||
| Assistant referees: Mokrane Gourari (Algeria) Abbes Akram Zerhouni (Algeria) Fourth official: Ibrahim Mutaz (Libya) Video assistant referee: Dahane Beida (Mauritania) Assistant video assistant referees: Salima Mukansanga (Rwanda) Jerson Dos Santos (Angola) | Match rules 90 minutes. Nine named substitutes, of which up to five may be used. |

#### Statistics

First half :
| Statistic | Espérance de Tunis | Al Ahly |
| Goals scored | 0 | 0 |
| Total shots | 5 | 2 |
| Shots on target | 0 | 0 |
| Saves | 0 | 0 |
| Ball possession | 55% | 45% |
| Corner kicks | 0 | 1 |
| Offsides | 1 | 0 |
| Yellow cards | 1 | 2 |
| Red cards | 0 | 0 |
Second half :
| Statistic | Espérance de Tunis | Al Ahly |
| Goals scored | 0 | 0 |
| Total shots | 5 | 8 |
| Shots on target | 0 | 1 |
| Saves | 1 | 0 |
| Ball possession | 49% | 51% |
| Corner kicks | 0 | 2 |
| Offsides | 1 | 1 |
| Yellow cards | 1 | 0 |
| Red cards | 0 | 0 |
Overall :
| Statistic | Espérance de Tunis | Al Ahly |
| Goals scored | 0 | 0 |
| Total shots | 10 | 10 |
| Shots on target | 0 | 1 |
| Saves | 1 | 0 |
| Ball possession | 52% | 48% |
| Corner kicks | 0 | 3 |
| Offsides | 2 | 1 |
| Yellow cards | 2 | 2 |
| Red cards | 0 | 0 |

### Second leg
#### Details

| Al Ahly | Espérance de Tunis |
| DF | 5 | Ramy Rabia (c) |
| DF | 8 | Akram Tawfik |
| FW | 10 | Percy Tau | 67' |
| MF | 13 | Marwan Attia | 78' |
| FW | 14 | Hussein El Shahat | 90+2' |
| MF | 22 | Emam Ashour | 90+2' |
| DF | 24 | Mohamed Abdelmonem |
| DF | 28 | Karim Fouad |
| DF | 30 | Mohamed Hany |
| GK | 31 | Mostafa Shobeir |
| FW | 39 | Wessam Abou Ali | 78' |
| Substitutes: ||
| GK | 1 | Mohamed El Shenawy |
| DF | 6 | Yasser Ibrahim | 90+2' |
| FW | 7 | Mahmoud Kahraba | 78' |
| MF | 11 | Ahmed Abdel Kader |
| FW | 12 | Reda Slim |
| MF | 15 | Aliou Dieng | 67' |
| MF | 19 | Mohamed Magdy Afsha | 78' |
| FW | 27 | Anthony Modeste |
| FW | 29 | Taher Mohamed | 90+2' |
| Manager: ||
| Marcel Koller ||
| GK | 1 | Amenallah Memmiche |
| DF | 2 | Mohamed Ben Ali | | 45' |
| DF | 5 | Yassine Meriah |
| MF | 8 | Houssem Tka | | 76' |
| FW | 9 | Rodrigo Rodrigues |
| MF | 10 | Yan Sasse | | 85' |
| DF | 15 | Mohamed Amine Tougai |
| FW | 18 | Houssam Ghacha | | 75' |
| DF | 20 | Mohamed Amine Ben Hamida | 90+5' |
| MF | 25 | Ghailene Chaalali (c) | 86' |
| MF | 38 | Roger Aholou | 20' | 85' |
| Substitutes: ||
| FW | 11 | Oussama Bouguerra | | 85' |
| GK | 12 | Moez Ben Cherifia |
| DF | 13 | Raed Bouchniba | | 45' |
| DF | 22 | Hani Amamou |
| MF | 23 | Ghaith Ouahabi |
| FW | 29 | Mohamed Ali Ben Hammouda | | 85' |
| MF | 31 | Zakaria El Ayeb |
| MF | 36 | Onuche Ogbelu | 86' | 76' |
| FW | 37 | André Bukia | | 75' |
| Manager: ||
| Miguel Cardoso | 90+4' |
| Assistant referees: Souru Phatsoane (Lesotho) Seydou Tiama (Burkina Faso) Fourth official: Alhadi Allaou Mahamat (Chad) Video assistant referee: Lahlou Benbraham (Algeria) Assistant video assistant referees: Daniel Nii Laryea (Ghana) Mohamed Abdallah Ibrahim (Sudan) | Match rules 90 minutes. Penalty shoot-out if tied on aggregate and away goals. Nine named substitutes, of which up to five may be used. |

#### Statistics

First half :
| Statistic | Al Ahly | Espérance de Tunis |
| Goals scored | 1 | 0 |
| Total shots | 7 | 0 |
| Shots on target | 1 | 0 |
| Saves | 0 | 0 |
| Ball possession | 51% | 49% |
| Corner kicks | 4 | 0 |
| Offsides | 0 | 0 |
| Yellow cards | 0 | 1 |
| Red cards | 0 | 0 |
Second half :
| Statistic | Al Ahly | Espérance de Tunis |
| Goals scored | 0 | 0 |
| Total shots | 4 | 5 |
| Shots on target | 1 | 1 |
| Saves | 1 | 1 |
| Ball possession | 31% | 69% |
| Corner kicks | 3 | 1 |
| Offsides | 0 | 0 |
| Yellow cards | 0 | 3 |
| Red cards | 0 | 0 |
Overall :
| Statistic | Al Ahly | Espérance de Tunis |
| Goals scored | 1 | 0 |
| Total shots | 11 | 5 |
| Shots on target | 2 | 1 |
| Saves | 1 | 1 |
| Ball possession | 41% | 59% |
| Corner kicks | 7 | 1 |
| Offsides | 0 | 0 |
| Yellow cards | 0 | 4 |
| Red cards | 0 | 0 |