# 2018–19 CAF Champions League

The 2018–19 CAF Champions League (officially the 2018–19 Total CAF Champions League for sponsorship reasons) was the 55th edition of Africa's premier club football tournament organized by the Confederation of African Football (CAF), and the 23rd edition under the current CAF Champions League title.
This season followed a transitional calendar which allows the CAF club competitions to switch from a February-to-November schedule to an August–to-May schedule, as per the decision of the CAF Executive Committee on 20 July 2017. It began in December 2018, right after the 2018 season had finished, and ended in May 2019, before the 2019 Africa Cup of Nations (which had been switched from a January/February to a June/July date). The next season then started after the Africa Cup of Nations and followed the new calendar.
Defending champions Espérance de Tunis won a second consecutive title, being declared the winners after their second leg match against Wydad AC in the final was abandoned.
As winners of the 2018–19 CAF Champions League, Espérance de Tunis qualified for the 2019 FIFA Club World Cup in Qatar, and earned the right to play against the winners of the 2018–19 CAF Confederation Cup, Zamalek, in the 2020 CAF Super Cup.

## Association team allocation

All 56 CAF member associations may enter the CAF Champions League, with the 12 highest ranked associations according to their CAF 5-year ranking eligible to enter two teams in the competition. As a result, theoretically a maximum of 68 teams could enter the tournament – although this level has never been reached.
For the 2018–19 CAF Champions League, the CAF uses the 2013–2017 CAF 5-year ranking, which calculates points for each entrant association based on their clubs’ performance over those 5 years in the CAF Champions League and CAF Confederation Cup. The criteria for points are the following:
| | CAF Champions League | CAF Confederation Cup |
| Winners | 6 points | 5 points |
| Runners-up | 5 points | 4 points |
| Losing semi-finalists | 4 points | 3 points |
| Losing quarter-finalists (from 2017) | 3 points | 2 points |
| 3rd place in groups | 2 points | 1 point |
| 4th place in groups | 1 point | 0.5 point |
The points are multiplied by a coefficient according to the year as follows:
* 2017 – 5
* 2016 – 4
* 2015 – 3
* 2014 – 2
* 2013 – 1

## Teams

The following 57 teams from 46 associations entered the competition.
* For this season, the title holders (in bold italics) receive a bye to the group stage.
* Four teams (in bold) received a bye to the first round.
* The other 52 teams entered the preliminary round.
Associations are shown according to their 2013–2017 CAF 5-year ranking – those with a ranking score have their rank and score indicated.
Associations eligible to enter two teams (Ranked 1–12) :
| Association | Team | Qualifying method |
| Tunisia (1st – 116 pts) | Espérance de Tunis | Title holders (2018 CAF Champions League winners) 2017–18 Tunisian Ligue Professionnelle 1 champions |
| Tunisia (1st – 116 pts) | Club Africain | 2017–18 Tunisian Ligue Professionnelle 1 runners-up |
| Egypt (2nd – 106.5 pts) | Al-Ahly | 2017–18 Egyptian Premier League champions |
| Egypt (2nd – 106.5 pts) | Ismaily | 2017–18 Egyptian Premier League runners-up |
| DR Congo (3rd – 90 pts) | AS Vita Club | 2017–18 Linafoot champions |
| DR Congo (3rd – 90 pts) | TP Mazembe | 2017–18 Linafoot runners-up |
| Morocco (4th – 84 pts) | Ittihad Tanger | 2017–18 Botola champions |
| Morocco (4th – 84 pts) | Wydad AC | 2017–18 Botola runners-up |
| Algeria (5th – 82.5 pts) | CS Constantine | 2017–18 Algerian Ligue Professionnelle 1 champions |
| Algeria (5th – 82.5 pts) | JS Saoura | 2017–18 Algerian Ligue Professionnelle 1 runners-up |
| South Africa (6th – 78.5 pts) | Mamelodi Sundowns | 2017–18 South African Premier Division champions |
| South Africa (6th – 78.5 pts) | Orlando Pirates | 2017–18 South African Premier Division runners-up |
| Sudan (7th – 53 pts) | Al-Hilal | 2018 Sudan Premier League champions |
| Sudan (7th – 53 pts) | Al-Merrikh | 2018 Sudan Premier League runners-up |
| Zambia (8th – 38 pts) | ZESCO United | 2018 Zambia Super League champions |
| Zambia (8th – 38 pts) | Nkana | 2018 Zambia Super League runners-up |
| Libya (9th – 19 pts) | Al-Nasr | 2017–18 Libyan Premier League champions |
| Libya (9th – 19 pts) | Al-Ahly Benghazi | 2017–18 Libyan Premier League runners-up |
| Cameroon (T-10th – 15 pts) | Coton Sport | 2018 Elite One champions |
| Cameroon (T-10th – 15 pts) | UMS de Loum | 2018 Elite One runners-up |
| Ivory Coast (T-10th – 15 pts) | ASEC Mimosas | 2017–18 Côte d'Ivoire Ligue 1 champions |
| Ivory Coast (T-10th – 15 pts) | SC Gagnoa | 2017–18 Côte d'Ivoire Ligue 1 runners-up |
| Mozambique (T-10th – 15 pts) | UD Songo (one entrant only) | 2017 Moçambola champions |
Associations eligible to enter one team :
| Association | Team | Qualifying method |
| Ethiopia (T-13th – 10.5 pts) | Jimma Aba Jifar | 2017–18 Ethiopian Premier League champions |
| Nigeria (T-13th – 10.5 pts) | Lobi Stars | 2018 Nigeria Professional Football League first place |
| Congo (15th – 10 pts) | AS Otohô | 2018 Congo Ligue 1 champions |
| Mali (16th – 8 pts) | Stade Malien | 2018 Malian Cup winners |
| Angola (17th – 6 pts) | 1º de Agosto | 2018 Girabola champions |
| Guinea (T-18th – 5 pts) | Horoya | 2017–18 Guinée Championnat National champions |
| Eswatini (T-18th – 5 pts) | Mbabane Swallows | 2017–18 Swazi Premier League champions |
| Uganda (T-18th – 5 pts) | Vipers | 2017–18 Uganda Premier League champions |
| Zimbabwe (T-18th – 5 pts) | FC Platinum | 2017 Zimbabwe Premier Soccer League champions |
| Gabon (23rd – 2.5 pts) | AS Mangasport | 2018 Gabon Championnat National D1 champions |
| Tanzania (24th – 2 pts) | Simba | 2017–18 Tanzanian Premier League champions |
| Botswana | Township Rollers | 2017–18 Botswana Premier League champions |
| Burkina Faso | ASF Bobo Dioulasso | 2017–18 Burkinabé Premier League champions |
| Burundi | Le Messager Ngozi | 2017–18 Burundi Premier League champions |
| Central African Republic | Stade Centrafricaine | 2018 Central African Republic League champions |
| Chad | Elect-Sport | 2018 Chad Premier League champions |
| Comoros | Volcan Club | 2018 Comoros Premier League champions |
| Djibouti | Djibouti Télécom | 2017–18 Djibouti Premier League champions |
| Equatorial Guinea | Leones Vegetarianos | 2018 Equatoguinean Primera División champions |
| Gambia | GAMTEL | 2017–18 GFA League First Division champions |
| Kenya | Gor Mahia | 2018 Kenyan Premier League champions |
| Lesotho | Bantu | 2017–18 Lesotho Premier League champions |
| Liberia | Barrack Young Controllers | 2018 Liberian First Division League champions |
| Madagascar | CNaPS Sport | 2018 THB Champions League champions |
| Malawi | Nyasa Big Bullets | 2017 Malawi Premier Division runners-up |
| Mauritania | FC Nouadhibou | 2017–18 Ligue 1 Mauritania champions |
| Namibia | African Stars | 2017–18 Namibia Premier League champions |
| Niger | AS SONIDEP | 2017–18 Niger Premier League champions |
| Rwanda | APR | 2017–18 Rwanda Premier League champions |
| Senegal | ASC Diaraf | 2017–18 Senegal Premier League champions |
| Seychelles | Light Stars | 2018 Seychelles League Cup winners |
| South Sudan | Al-Hilal Wau | 2018 South Sudan Football Championship champions |
| Togo | US Koroki | 2017–18 Togolese Championnat National champions |
| Zanzibar | JKU | 2017–18 Zanzibar Premier League champions |

### Notes

* ^ Malawi (MWI): Malawi were represented by Nyasa Big Bullets, the 2017 Malawi Premier Division runners-up, as the 2018 Malawi Premier Division was not finished in time for the 2018–19 CAF competitions (Be Forward Wanderers, the 2017 Malawi Premier Division champions, chose not to enter).
* ^ Mali (MLI): Mali were represented by Stade Malien, the 2018 Malian Cup winners, as the Malian Première Division was not played in 2018.
* ^ Mozambique (MOZ): Mozambique were represented by UD Songo, the 2017 Moçambola champions, as the 2018 Moçambola was not finished in time for the 2018–19 CAF competitions (other teams chose not to enter despite Mozambique eligible for two entrants).
* ^ Nigeria (NGA): Nigeria were represented by Lobi Stars, the 2018 Nigeria Professional Football League leaders after 24 rounds when the league was deemed concluded, following a decision by the Nigeria Professional Football League.
* ^ Seychelles (SEY): Seychelles were represented by Light Stars, the 2018 Seychelles League Cup winners, as the 2018 Seychelles First Division was not finished in time for the 2018–19 CAF competitions.
* ^ Zimbabwe (ZIM): Zimbabwe were represented by FC Platinum, the 2017 Zimbabwe Premier Soccer League champions, as the 2018 Zimbabwe Premier Soccer League was not finished in time for the 2018–19 CAF competitions.

### Associations which did not enter a team

* Benin
* Cape Verde
* Eritrea
* Ghana (22nd – 4 pts)
* Guinea-Bissau
* Mauritius
* Réunion
* São Tomé and Príncipe
* Sierra Leone (suspended by FIFA)
* Somalia

## Schedule

The schedule of the competition was as follows (matches scheduled in midweek in italics). Effective from the Champions League group stage, weekend matches were played on Fridays and Saturdays while midweek matches were played on Tuesdays, with some exceptions. Kick-off times were also fixed at 13:00 (Saturdays and Tuesdays only), 16:00 and 19:00 GMT.
| Phase | Round | Draw date | First leg | Second leg |
| Qualifying | Preliminary round | 3 November 2018 (Rabat, Morocco) | 27–28 November 2018 | 4–5 December 2018 |
| Qualifying | First round | 3 November 2018 (Rabat, Morocco) | 14–16 December 2018 | 21–23 December 2018 |
| Group stage | Matchday 1 | 28 December 2018 (Cairo, Egypt) | 11–12 January 2019 | 11–12 January 2019 |
| Group stage | Matchday 2 | 28 December 2018 (Cairo, Egypt) | 18–19 January 2019 | 18–19 January 2019 |
| Group stage | Matchday 3 | 28 December 2018 (Cairo, Egypt) | 1–2 February 2019 | 1–2 February 2019 |
| Group stage | Matchday 4 | 28 December 2018 (Cairo, Egypt) | 12 February 2019 | 12 February 2019 |
| Group stage | Matchday 5 | 28 December 2018 (Cairo, Egypt) | 8–9 March 2019 | 8–9 March 2019 |
| Group stage | Matchday 6 | 28 December 2018 (Cairo, Egypt) | 15–16 March 2019 | 15–16 March 2019 |
| Knockout stage | Quarter-finals | 20 March 2019 (Cairo, Egypt) | 5–6 April 2019 | 12–13 April 2019 |
| Knockout stage | Semi-finals | 20 March 2019 (Cairo, Egypt) | 26–27 April 2019 | 3–4 May 2019 |
| Knockout stage | Final | 20 March 2019 (Cairo, Egypt) | 24–25 May 2019 | 31 May – 1 June 2019 |

## Qualifying rounds

The draw for the preliminary round and first round was held on 3 November 2018 in Rabat, Morocco, and was officially announced by the CAF on 9 November due to a special situation with the transitional calendar.
In the qualifying rounds, each tie was played on a home-and-away two-legged basis. If the aggregate score was tied after the second leg, the away goals rule would be applied, and if still tied, extra time would not be played, and the penalty shoot-out would be used to determine the winner (Regulations III. 13 & 14).

### Preliminary round

| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| ASC Diaraf | 1–1 (4–2 p) | US Koroki | 1–0 | 0–1 |
| JS Saoura | 2–0 | SC Gagnoa | 2–0 | 0–0 |
| Ittihad Tanger | 1–0 | Elect-Sport | 1–0 | 0–0 |
| Le Messager Ngozi | 1–3 | Ismaily | 0–1 | 1–2 |
| ASF Bobo Dioulasso | 4–4 (3–5 p) | Coton Sport | 3–1 | 1–3 |
| AS SONIDEP | 1–5 | ZESCO United | 1–2 | 0–3 |
| Orlando Pirates | 8–2 | Light Stars | 5–1 | 3–1 |
| Volcan Club | 1–2 | African Stars | 0–0 | 1–2 |
| FC Nouadhibou | 2–3 | Al-Ahly Benghazi | 2–1 | 0–2 |
| Leones Vegetarianos | 1–7 | Mamelodi Sundowns | 0–2 | 1–5 |
| Gor Mahia | 1–1 (4–3 p) | Nyasa Big Bullets | 1–0 | 0–1 |
| UMS de Loum | 1–2 | Lobi Stars | 1–0 | 0–2 |
| UD Songo | 1–3 | Nkana | 1–2 | 0–1 |
| Simba | 8–1 | Mbabane Swallows | 4–1 | 4–0 |
| ASAS Djibouti Télécom | 3–5 | Jimma Aba Jifar | 1–3 | 2–2 |
| CS Constantine | 1–0 | GAMTEL | 0–0 | 1–0 |
| Al-Merrikh | 2–2 (a) | Vipers | 2–1 | 0–1 |
| Stade Centrafricaine | 0–5 | Stade Malien | 0–1 | 0–4 |
| ASEC Mimosas | 1–0 | AS Mangasport | 1–0 | 0–0 |
| Township Rollers | 2–2 (2–4 p) | Bantu | 1–1 | 1–1 |
| APR | 1–3 | Club Africain | 0–0 | 1–3 |
| Al-Hilal | 6–0 | JKU | 4–0 | 2–0 |
| Al-Nasr | 9–3 | Al-Hilal Wau | 5–1 | 4–2 |
| Horoya | 2–0 | Barrack Young Controllers | 1–0 | 1–0 |
| 1º de Agosto | 4–4 (a) | AS Otohô | 4–2 | 0–2 |
| CNaPS Sport | 1–2 | FC Platinum | 1–1 | 0–1 |

### First round

The 15 winners of the first round advanced to the group stage to join Espérance de Tunis, who received a bye to the group stage as the title holders, while the 15 losers of the first round entered the Confederation Cup play-off round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Wydad AC | 3–3 (a) | ASC Diaraf | 2–0 | 1–3 |
| JS Saoura | 2–1 | Ittihad Tanger | 2–0 | 0–1 |
| Ismaily | 3–2 | Coton Sport | 2–0 | 1–2 |
| TP Mazembe | 2–1 | ZESCO United | 1–0 | 1–1 |
| Orlando Pirates | 1–0 | African Stars | 0–0 | 1–0 |
| Al-Ahly Benghazi | 0–4 | Mamelodi Sundowns | 0–0 | 0–4 |
| Gor Mahia | 3–3 (a) | Lobi Stars | 3–1 | 0–2 |
| Nkana | 3–4 | Simba | 2–1 | 1–3 |
| Al-Ahly | 2–1 | Jimma Aba Jifar | 2–0 | 0–1 |
| CS Constantine | 3–0 | Vipers | 1–0 | 2–0 |
| Stade Malien | 0–2 | ASEC Mimosas | 0–1 | 0–1 |
| AS Vita Club | 5–2 | Bantu | 4–1 | 1–1 |
| Club Africain | 3–2 | Al-Hilal | 3–1 | 0–1 |
| Al-Nasr | 5–6 | Horoya | 3–0 | 2–6 |
| AS Otohô | 1–1 (a) | FC Platinum | 1–1 | 0–0 |

## Group stage

The draw for the group stage was held on 28 December 2018, 19:00 CAT (UTC+2), at the Nile Ritz-Carlton in Cairo, Egypt. The 16 teams, including the title holders, Espérance de Tunis, and the 15 winners of the first round of qualifying, were drawn into four groups of four.
The teams were seeded by their performances in the CAF competitions for the previous five seasons (CAF 5-year ranking points shown in parentheses). Each group contained one team from each of Pot 1, Pot 2, Pot 3, and Pot 4, and each team was drawn into one of the positions in their group.
| Pot | Pot 1 | Pot 2 | Pot 3 | Pot 4 |
| Teams | TP Mazembe (66 pts) Al-Ahly (62 pts) Wydad AC (51 pts) Espérance de Tunis (45 pts) | Mamelodi Sundowns (40 pts) AS Vita Club (29 pts) Horoya (19 pts) Club Africain (12 pts) | ASEC Mimosas (8.5 pts) Orlando Pirates (8 pts) Simba CS Constantine | Ismaily Lobi Stars FC Platinum JS Saoura |
In the group stage, each group was played on a home-and-away round-robin basis. The winners and runners-up of each group advanced to the quarter-finals of the knockout stage.
* Tiebreakers
* The teams were ranked according to points (3 points for a win, 1 point for a draw, 0 points for a loss). If tied on points, tiebreakers were applied in the following order (Regulations III. 20 & 21):
* Points in head-to-head matches among tied teams;
* Goal difference in head-to-head matches among tied teams;
* Goals scored in head-to-head matches among tied teams;
* Away goals scored in head-to-head matches among tied teams;
* If more than two teams are tied, and after applying all head-to-head criteria above, a subset of teams are still tied, all head-to-head criteria above are reapplied exclusively to this subset of teams;
* Goal difference in all group matches;
* Goals scored in all group matches;
* Away goals scored in all group matches;
* Drawing of lots.

### Group A

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | WAC | MSD | LOB | ASE |
| 1 | Wydad AC | 6 | 3 | 1 | 2 | 8 | 6 | +2 | 10 | Quarter-finals | — | 1–0 | 0–0 | 5–2 |
| 2 | Mamelodi Sundowns | 6 | 3 | 1 | 2 | 9 | 5 | +4 | 10 | Quarter-finals | 2–1 | — | 3–0 | 3–1 |
| 3 | Lobi Stars | 6 | 2 | 1 | 3 | 4 | 6 | −2 | 7 | | 0–1 | 2–1 | — | 2–0 |
| 4 | ASEC Mimosas | 6 | 2 | 1 | 3 | 6 | 10 | −4 | 7 | | 2–0 | 0–0 | 1–0 | — |
* 1 2 Head-to-head away goals scored: Wydad AC 1, Mamelodi Sundowns 0.
* 1 2 Head-to-head goal difference: Lobi Stars +1, ASEC Mimosas –1.

### Group B

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | EST | HOR | ORL | PLA |
| 1 | Espérance de Tunis | 6 | 4 | 2 | 0 | 9 | 2 | +7 | 14 | Quarter-finals | — | 2–0 | 2–0 | 2–0 |
| 2 | Horoya | 6 | 3 | 1 | 2 | 6 | 7 | −1 | 10 | Quarter-finals | 1–1 | — | 2–1 | 2–0 |
| 3 | Orlando Pirates | 6 | 1 | 3 | 2 | 6 | 6 | 0 | 6 | | 0–0 | 3–0 | — | 2–2 |
| 4 | FC Platinum | 6 | 0 | 2 | 4 | 3 | 9 | −6 | 2 | | 1–2 | 0–1 | 0–0 | — |

### Group C

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | TPM | CSC | CA | ISM |
| 1 | TP Mazembe | 6 | 3 | 2 | 1 | 13 | 4 | +9 | 11 | Quarter-finals | — | 2–0 | 8–0 | 2–0 |
| 2 | CS Constantine | 6 | 3 | 1 | 2 | 8 | 6 | +2 | 10 | Quarter-finals | 3–0 | — | 0–1 | 3–2 |
| 3 | Club Africain | 6 | 3 | 1 | 2 | 5 | 9 | −4 | 10 | | 0–0 | 0–1 | — | 1–0 |
| 4 | Ismaily | 6 | 0 | 2 | 4 | 4 | 11 | −7 | 2 | | 1–1 | 1–1 | 0–3 (awd.) | — |
* 1 2 Goal difference in all group matches: CS Constantine +2, Club Africain –4.
* ↑ The CAF announced on 23 January 2019 that Ismaily were disqualified for aggressive fans behaviors, including consistently throwing rocks and water bottles on the assistant referee and the away fans, and other incidents at their home match against Club Africain on 18 January 2019. All results of matches played by Ismaily were annulled and not taken into consideration according to the regulations. However, following an appeal by Ismaily, the CAF decided on 10 February 2019 to reinstate Ismaily to the competition.
* ↑ On 19 February 2019, following the suspension of the match involving Ismaily and Club Africain due to the aggressive behaviors Ismaily fans shown during the match, CAF decided to consider the match forfeited by Ismaily with a result of 3–0 in favour of Club Africain. The match was originally suspended on the 83rd minute with the score 1–2 for Club Africain.

### Group D

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | AHL | SIM | JSS | VIT |
| 1 | Al-Ahly | 6 | 3 | 1 | 2 | 11 | 3 | +8 | 10 | Quarter-finals | — | 5–0 | 3–0 | 2–0 |
| 2 | Simba | 6 | 3 | 0 | 3 | 6 | 13 | −7 | 9 | Quarter-finals | 1–0 | — | 3–0 | 2–1 |
| 3 | JS Saoura | 6 | 2 | 2 | 2 | 6 | 9 | −3 | 8 | | 1–1 | 2–0 | — | 1–0 |
| 4 | AS Vita Club | 6 | 2 | 1 | 3 | 9 | 7 | +2 | 7 | | 1–0 | 5–0 | 2–2 | — |

## Knockout stage

Each tie in the knockout phase was played over two legs, with each team playing one leg at home. The team that scored more goals on aggregate over the two legs advanced to the next round. If the aggregate score was level, the away goals rule was applied, i.e. the team that scored more goals away from home over the two legs advanced. If away goals were also equal, then extra time was not played and the winners were decided by a penalty shoot-out (Regulations III. 26 & 27).

### Bracket

The bracket was decided after the draw for the knockout stage (quarter-finals and semi-finals), which was held on 20 March 2019, 20:00 CAT (UTC+2), at the Marriot Hotel in Cairo, Egypt.
| Quarter-finals | Quarter-finals | Quarter-finals | Quarter-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final | Final |
| Horoya | 0 | 0 | 0 | | | | | | | | |
| Wydad AC | 0 | 5 | 5 | | | | | | | | |
| Wydad AC | 0 | 5 | 5 | Wydad AC | 2 | 0 | 2 | | | | |
| | | | | Mamelodi Sundowns | 1 | 0 | 1 | | | | |
| Mamelodi Sundowns | 5 | 0 | 5 | Mamelodi Sundowns | 1 | 0 | 1 | | | | |
| Al-Ahly | 0 | 1 | 1 | | | | | | | | |
| Al-Ahly | 0 | 1 | 1 | | | | | Wydad AC | 1 | abd. | awd. |
| | | | | | | | | Espérance de Tunis | 1 | abd. | awd. |
| CS Constantine | 2 | 1 | 3 | | | | | | | | | Espérance de Tunis | 1 | abd. | awd. |
| Espérance de Tunis | 3 | 3 | 6 | | | | | | | | |
| Espérance de Tunis | 3 | 3 | 6 | Espérance de Tunis | 1 | 0 | 1 | | | | |
| | | | | TP Mazembe | 0 | 0 | 0 | | | | |
| Simba | 0 | 1 | 1 | TP Mazembe | 0 | 0 | 0 | | | | |
| TP Mazembe | 0 | 4 | 4 | | | | | | | | |

### Quarter-finals

In the quarter-finals, the winners of one group played the runners-up of another group (teams from same group could not play each other), with the group winners hosting the second leg, and the matchups decided by draw.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| CS Constantine | 3–6 | Espérance de Tunis | 2–3 | 1–3 |
| Mamelodi Sundowns | 5–1 | Al-Ahly | 5–0 | 0–1 |
| Horoya | 0–5 | Wydad AC | 0–0 | 0–5 |
| Simba | 1–4 | TP Mazembe | 0–0 | 1–4 |

### Semi-finals

In the semi-finals, the four quarter-final winners played in two ties, with the matchups and order of legs decided by draw.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Wydad AC | 2–1 | Mamelodi Sundowns | 2–1 | 0–0 |
| Espérance de Tunis | 1–0 | TP Mazembe | 1–0 | 0–0 |

### Final

In the final, the two semi-final winners play each other, with the order of legs determined by the semi-final draw.
Espérance de Tunis were declared champions after second leg was abandoned.

## Top goalscorers

| Rank | Player | Team | MD1 | MD2 | MD3 | MD4 | MD5 | MD6 | QF1 | QF2 | SF2 | F2 | Total |
| 1 | Themba Zwane | Mamelodi Sundowns | | 2 | 1 | | 1 | | 1 | | | | 5 |
| 2 | Trésor Mputu | TP Mazembe | | | 2 | | | 1 | | 1 | | | 4 |
| 2 | Jackson Muleka | TP Mazembe | | | 2 | | | 1 | | 1 | | | | 4 |
| 2 | Mohamed Nahiri | Wydad AC | | 1 | 1 | | | 1 | | 1 | | | 4 |
| 5 | Ghazi Ayadi | Club Africain | | 2 | | | | 1 | | | | | 3 |
| 5 | Youcef Belaïli | Espérance de Tunis | | | | | | | 1 | | 1 | 1 | 3 |
| 5 | Walid El Karti | Wydad AC | 1 | | | | | | | 2 | | | 3 |
| 5 | Meschak Elia | TP Mazembe | | | 1 | | 1 | | | 1 | | | | 3 |
| 5 | Meddie Kagere | Simba | 2 | | | 1 | | | | | | | | | 3 |
| 5 | Kévin Mondeko | TP Mazembe | 1 | | 2 | | | | | | | | | 3 |
| 5 | Jean-Marc Makusu Mundele | AS Vita Club | | 2 | 1 | | | | | | | | | | | 3 |
| 5 | Nedvěd | Al-Ahly | | 1 | | 2 | | | | | | | | | 3 |
| 5 | Benson Shilongo | Ismaily | | 1 | 1 | 1 | | | | | | | | | | 3 |
| 5 | Justin Shonga | Orlando Pirates | | 2 | | | | 1 | | | | | | | | 3 |
| 5 | Sid Ali Yahia-Chérif | JS Saoura | | 1 | 1 | | 1 | | | | | | | | | 3 |