# 2020–21 CAF Champions League qualifying rounds

The 2020–21 CAF Champions League qualifying rounds were played from 28 November 2020 to 6 January 2021. A total of 54 teams competed in the qualifying rounds to decide the 16 places in the group stage of the 2020–21 CAF Champions League.

## Draw

The draw for the qualifying rounds was held on 9 November 2020 at the CAF headquarters in Cairo, Egypt.
The entry round of the 54 teams entered into the draw was determined by their performances in the CAF competitions for the previous five seasons (CAF 5-year ranking points shown in parentheses).
| Entry round | First round (10 teams) | Preliminary round (44 teams) |
| Teams | Al Ahly (69 pts) Wydad AC (65 pts) Espérance de Tunis (63 pts) TP Mazembe (55 pts) Zamalek (54 pts) Mamelodi Sundowns (49 pts) Raja Casablanca (39 pts) Horoya (38 pts) AS Vita Club (23 pts) 1º de Agosto (22 pts) | Al Hilal (21.5 pts) Enyimba (21 pts) CS Sfaxien (16 pts) Petro de Luanda (12 pts) Simba (12 pts) Gor Mahia (11 pts) Al Nasr (10 pts) FC Platinum (9 pts) Nkana (8 pts) MC Alger (7 pts) Asante Kotoko (4 pts) Al Merrikh (4 pts) FC Nouadhibou (2.5 pts) AS Otohô (2 pts) CR Belouizdad Buffles du Borgou Jwaneng Galaxy Rahimo Le Messager Ngozi PWD Bamenda Gazelle US Zilimadjou GR/SIAF Young Buffaloes Mekelle 70 Enderta Akonangui AS Bouenguidi Gambia Armed Forces Ashanti de Siguiri RC Abidjan Bantu Al Ahly Benghazi Stade Malien Costa do Sol AS SONIDEP Plateau United APR Teungueth Mogadishu City Kaizer Chiefs ASKO Kara Vipers Forest Rangers Mlandege |

## Format

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).

## Schedule

The schedule of the competition was as follows.
| Round | First leg | Second leg |
| Preliminary round | 28–29 November 2020 | 4–6 December 2020 |
| First round | 22–23 December 2020 | 5–6 January 2021 |

## Bracket

The bracket of the draw was announced by the CAF on 9 November 2020.
The 16 winners of the first round advanced to the group stage, while the 16 losers of the first round entered the Confederation Cup play-off round.
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Ashanti de Siguiri | 1 | 0 | 1 | | | | | |
| 4 | Stade Malien | 2 | 2 (awd.) | 4 | | | | | |
| 4 | Stade Malien | 2 | 2 (awd.) | 4 | Stade Malien | Stade Malien | 1 | 0 | 1 |
| | | | | | Wydad AC | Wydad AC | 0 | 3 | 3 |
| 3 | Wydad AC | | | Bye | Wydad AC | Wydad AC | 0 | 3 | 3 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Gambia Armed Forces | 1 | 0 | 1 | | | | | |
| 4 | Teungueth | 1 | 2 | 3 | | | | | |
| 4 | Teungueth | 1 | 2 | 3 | Teungueth (p) | Teungueth (p) | 0 | 0 | 0 (3) |
| | | | | | Raja Casablanca | Raja Casablanca | 0 | 0 | 0 (1) |
| 3 | Raja Casablanca | | | Bye | Raja Casablanca | Raja Casablanca | 0 | 0 | 0 (1) |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | RC Abidjan (a) | 1 | 1 | 2 | | | | | |
| 4 | ASKO Kara | 0 | 2 | 2 | | | | | |
| 4 | ASKO Kara | 0 | 2 | 2 | RC Abidjan | RC Abidjan | 1 | 0 | 1 |
| | | | | | Horoya | Horoya | 1 | 1 | 2 |
| 3 | Horoya | | | Bye | Horoya | Horoya | 1 | 1 | 2 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | AS SONIDEP | 2 | 2 | 4 | | | | | |
| 4 | Mogadishu City | 0 | 0 | 0 | | | | | |
| 4 | Mogadishu City | 0 | 0 | 0 | AS SONIDEP | AS SONIDEP | 0 | 0 | 0 |
| | | | | | Al Ahly | Al Ahly | 1 | 4 | 5 |
| 3 | Al Ahly | | | Bye | Al Ahly | Al Ahly | 1 | 4 | 5 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Al Ahly Benghazi | — | — | w/o | | | | | |
| 4 | Mekelle 70 Enderta | — | — | | | | | | |
| 4 | Mekelle 70 Enderta | — | — | | Al Ahly Benghazi | Al Ahly Benghazi | 0 | 2 | 2 |
| | | | | | Espérance de Tunis | Espérance de Tunis | 0 | 3 | 3 |
| 3 | Espérance de Tunis | | | Bye | Espérance de Tunis | Espérance de Tunis | 0 | 3 | 3 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Gazelle | — | — | w/o | | | | | |
| 4 | GR/SIAF | — | — | | | | | | |
| 4 | GR/SIAF | — | — | | Gazelle | Gazelle | — | — | |
| | | | | | Zamalek | Zamalek | — | — | w/o |
| 3 | Zamalek | | | Bye | Zamalek | Zamalek | — | — | w/o |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Forest Rangers | 0 | 0 | 0 | | | | | |
| 4 | AS Bouenguidi | 0 | 2 | 2 | | | | | |
| 4 | AS Bouenguidi | 0 | 2 | 2 | AS Bouenguidi | AS Bouenguidi | 1 | 1 | 2 |
| | | | | | TP Mazembe | TP Mazembe | 2 | 2 | 4 |
| 3 | TP Mazembe | | | Bye | TP Mazembe | TP Mazembe | 2 | 2 | 4 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Jwaneng Galaxy | 4 | 1 | 5 | | | | | |
| 4 | US Zilimadjou | 0 | 1 | 1 | | | | | |
| 4 | US Zilimadjou | 0 | 1 | 1 | Jwaneng Galaxy | Jwaneng Galaxy | 0 | 1 | 1 |
| | | | | | Mamelodi Sundowns | Mamelodi Sundowns | 2 | 3 | 5 |
| 3 | Mamelodi Sundowns | | | Bye | Mamelodi Sundowns | Mamelodi Sundowns | 2 | 3 | 5 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Young Buffaloes (a) | 0 | 1 | 1 | | | | | |
| 4 | Le Messager Ngozi | 0 | 1 | 1 | | | | | |
| 4 | Le Messager Ngozi | 0 | 1 | 1 | Young Buffaloes | Young Buffaloes | 2 | 1 | 3 |
| | | | | | AS Vita Club | AS Vita Club | 2 | 4 | 6 |
| 3 | AS Vita Club | | | Bye | AS Vita Club | AS Vita Club | 2 | 4 | 6 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | PWD Bamenda | 0 | 0 | 0 | | | | | |
| 4 | Kaizer Chiefs | 1 | 0 | 1 | | | | | |
| 4 | Kaizer Chiefs | 1 | 0 | 1 | Kaizer Chiefs | Kaizer Chiefs | 0 | 1 | 1 |
| | | | | | 1º de Agosto | 1º de Agosto | 0 | 0 | 0 |
| 3 | 1º de Agosto | | | Bye | 1º de Agosto | 1º de Agosto | 0 | 0 | 0 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | AS Otohô | 1 | 0 | 1 | | | | | |
| 4 | Al Merrikh | 1 | 2 | 3 | | | | | |
| 4 | Al Merrikh | 1 | 2 | 3 | Al Merrikh | Al Merrikh | 3 | 1 | 4 |
| | | | | | Enyimba | Enyimba | 0 | 2 | 2 |
| 3 | Rahimo | 0 | 1 | 1 | Enyimba | Enyimba | 0 | 2 | 2 |
| 2 | Enyimba | 1 | 1 | 2 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | FC Nouadhibou | 1 | 0 | 1 | | | | | |
| 4 | Asante Kotoko | 1 | 2 (awd.) | 3 | | | | | |
| 4 | Asante Kotoko | 1 | 2 (awd.) | 3 | Asante Kotoko | Asante Kotoko | 0 | 0 | 0 |
| | | | | | Al Hilal | Al Hilal | 1 | 2 (awd.) | 3 |
| 3 | Vipers | 0 | 0 | 0 | Al Hilal | Al Hilal | 1 | 2 (awd.) | 3 |
| 2 | Al Hilal | 1 | 1 | 2 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Buffles du Borgou | 1 | 1 | 2 | | | | | |
| 4 | MC Alger | 1 | 5 | 6 | | | | | |
| 4 | MC Alger | 1 | 5 | 6 | MC Alger | MC Alger | 2 | 0 | 2 |
| | | | | | CS Sfaxien | CS Sfaxien | 0 | 1 | 1 |
| 3 | Mlandege | 0 | 1 | 1 | CS Sfaxien | CS Sfaxien | 0 | 1 | 1 |
| 2 | CS Sfaxien | 5 | 3 | 8 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Bantu | 0 | 0 | 0 | | | | | |
| 4 | Nkana | 1 | 0 | 1 | | | | | |
| 4 | Nkana | 1 | 0 | 1 | Nkana | Nkana | 1 | 0 | 1 |
| | | | | | Petro de Luanda | Petro de Luanda | 1 | 1 | 2 |
| 3 | Akonangui | 0 | 2 | 2 | Petro de Luanda | Petro de Luanda | 1 | 1 | 2 |
| 2 | Petro de Luanda | 1 | 2 | 3 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Costa do Sol | 1 | 0 | 1 | | | | | |
| 4 | FC Platinum | 2 | 2 | 4 | | | | | |
| 4 | FC Platinum | 2 | 2 | 4 | FC Platinum | FC Platinum | 1 | 0 | 1 |
| | | | | | Simba | Simba | 0 | 4 | 4 |
| 3 | Plateau United | 0 | 0 | 0 | Simba | Simba | 0 | 4 | 4 |
| 2 | Simba | 1 | 0 | 1 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | CR Belouizdad | 2 | 2 | 4 | | | | | |
| 4 | Al Nasr | 0 | 0 | 0 | | | | | |
| 4 | Al Nasr | 0 | 0 | 0 | CR Belouizdad | CR Belouizdad | 6 | 2 | 8 |
| | | | | | Gor Mahia | Gor Mahia | 0 | 1 | 1 |
| 3 | APR | 2 | 1 | 3 | Gor Mahia | Gor Mahia | 0 | 1 | 1 |
| 2 | Gor Mahia | 1 | 3 | 4 | | | | | |

## Preliminary round

The preliminary round, also called the first preliminary round, included the 44 teams that did not receive byes to the first round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Ashanti de Siguiri | 1–4 | Stade Malien | 1–2 | 0–2 (awd.) |
| Gambia Armed Forces | 1–3 | Teungueth | 1–1 | 0–2 |
| RC Abidjan | 2–2 (a) | ASKO Kara | 1–0 | 1–2 |
| AS SONIDEP | 4–0 | Mogadishu City | 2–0 | 2–0 |
| Al Ahly Benghazi | w/o | Mekelle 70 Enderta | — | — |
| Gazelle | w/o | GR/SIAF | — | — |
| Forest Rangers | 0–2 | AS Bouenguidi | 0–0 | 0–2 |
| Jwaneng Galaxy | 5–1 | US Zilimadjou | 4–0 | 1–1 |
| Young Buffaloes | 1–1 (a) | Le Messager Ngozi | 0–0 | 1–1 |
| PWD Bamenda | 0–1 | Kaizer Chiefs | 0–1 | 0–0 |
| AS Otohô | 1–3 | Al Merrikh | 1–1 | 0–2 |
| Rahimo | 1–2 | Enyimba | 0–1 | 1–1 |
| FC Nouadhibou | 1–3 | Asante Kotoko | 1–1 | 0–2 (awd.) |
| Vipers | 0–2 | Al Hilal | 0–1 | 0–1 |
| Buffles du Borgou | 2–6 | MC Alger | 1–1 | 1–5 |
| Mlandege | 1–8 | CS Sfaxien | 0–5 | 1–3 |
| Bantu | 0–1 | Nkana | 0–1 | 0–0 |
| Akonangui | 2–3 | Petro de Luanda | 0–1 | 2–2 |
| Costa do Sol | 1–4 | FC Platinum | 1–2 | 0–2 |
| Plateau United | 0–1 | Simba | 0–1 | 0–0 |
| CR Belouizdad | 4–0 | Al Nasr | 2–0 | 2–0 |
| APR | 3–4 | Gor Mahia | 2–1 | 1–3 |
Notes:
* ↑ The preliminary round second leg match between Ashanti de Siguiri and Stade Malien could not be played after 4 of the 17 players from Ashanti de Siguiri tested positive for COVID-19. Thus, Ashanti de Siguiri were not able to name the required 15 players for holding the match, and subsequently, Stade Malien were awarded a technical 2–0 victory for the second leg by CAF in accordance with the regulations related to COVID-19.
* ↑ Al Ahly Benghazi won on walkover after Mekelle 70 Enderta were not able to present themselves with 15 players (including 1 goalkeeper) for the first leg in Cairo citing the Tigray conflict.
* ↑ Gazelle won on walkover after GR/SIAF failed to appear for the first leg in N'Djamena.
* ↑ The preliminary round second leg match between FC Nouadhibou and Asante Kotoko could not be played after 2 of the 16 players from FC Nouadhibou tested positive for COVID-19. Thus, FC Nouadhibou were not able to name the required 15 players for holding the match, and subsequently, Asante Kotoko were awarded a technical 2–0 victory for the second leg by CAF in accordance with the regulations related to COVID-19.
Stade Malien won 4–1 on aggregate.
Teungueth won 3–1 on aggregate.
2–2 on aggregate. RC Abidjan won on away goals.
AS SONIDEP won 4–0 on aggregate.
Al Ahly Benghazi won on walkover after Mekelle 70 Enderta were not able to present themselves with 15 players (including 1 goalkeeper) for the first leg in Cairo citing the Tigray conflict.
Gazelle won on walkover after GR/SIAF failed to appear for the first leg in N'Djamena.
AS Bouenguidi won 2–0 on aggregate.
Jwaneng Galaxy won 5–1 on aggregate.
1–1 on aggregate. Young Buffaloes won on away goals.
Kaizer Chiefs won 1–0 on aggregate.
Al Merrikh won 3–1 on aggregate.
Enyimba won 2–1 on aggregate.
Asante Kotoko won 3–1 on aggregate.
Al Hilal won 2–0 on aggregate.
MC Alger won 6–2 on aggregate.
CS Sfaxien won 8–1 on aggregate.
Nkana won 1–0 on aggregate.
Petro de Luanda won 3–2 on aggregate.
FC Platinum won 4–1 on aggregate.
Simba won 1–0 on aggregate.
CR Belouizdad won 4–0 on aggregate.
Gor Mahia won 4–3 on aggregate.

## First round

The first round, also called the second preliminary round, included 32 teams: the 10 teams that received byes to this round, and the 22 winners of the preliminary round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Stade Malien | 1–3 | Wydad AC | 1–0 | 0–3 |
| Teungueth | 0–0 (3–1 p) | Raja Casablanca | 0–0 | 0–0 |
| RC Abidjan | 1–2 | Horoya | 1–1 | 0–1 |
| AS SONIDEP | 0–5 | Al Ahly | 0–1 | 0–4 |
| Al Ahly Benghazi | 2–3 | Espérance de Tunis | 0–0 | 2–3 |
| Gazelle | w/o | Zamalek | — | — |
| AS Bouenguidi | 2–4 | TP Mazembe | 1–2 | 1–2 |
| Jwaneng Galaxy | 1–5 | Mamelodi Sundowns | 0–2 | 1–3 |
| Young Buffaloes | 3–6 | AS Vita Club | 2–2 | 1–4 |
| Kaizer Chiefs | 1–0 | 1º de Agosto | 0–0 | 1–0 |
| Al Merrikh | 4–2 | Enyimba | 3–0 | 1–2 |
| Asante Kotoko | 0–3 | Al Hilal | 0–1 | 0–2 (awd.) |
| MC Alger | 2–1 | CS Sfaxien | 2–0 | 0–1 |
| Nkana | 1–2 | Petro de Luanda | 1–1 | 0–1 |
| FC Platinum | 1–4 | Simba | 1–0 | 0–4 |
| CR Belouizdad | 8–1 | Gor Mahia | 6–0 | 2–1 |
Notes:
* ↑ Gazelle failed to appear for the first leg in Cairo following disputes between the Ministry of Youth and Sports in the country and the Chadian Football Federation, which prevented the club from traveling to Egypt. As a result, Gazelle were disqualified from the competition by CAF, and Zamalek won on walkover.
* ↑ The first round second leg match between Asante Kotoko and Al Hilal could not be played after 7 players from Asante Kotoko tested positive for COVID-19. Thus, Asante Kotoko were not able to name the required 15 players for holding the match, and subsequently, Al Hilal were awarded a technical 2–0 victory for the second leg by CAF in accordance with the regulations related to COVID-19.
Wydad Casablanca won 3–1 on aggregate.
0–0 on aggregate. Teungueth won 3–1 on penalties.
Horoya won 2–1 on aggregate.
Al Ahly won 5–0 on aggregate.
Espérance de Tunis won 3–2 on aggregate.
Zamalek won on walkover after Gazelle were disqualified by CAF for failing to appear for the first leg in Cairo.
TP Mazembe won 4–2 on aggregate.
Mamelodi Sundowns won 5–1 on aggregate.
AS Vita Club won 6–3 on aggregate.
Kaizer Chiefs won 1–0 on aggregate.
Al Merrikh won 4–2 on aggregate.
Al Hilal won 3–0 on aggregate.
MC Alger won 2–1 on aggregate.
Petro de Luanda won 2–1 on aggregate.
Simba won 4–1 on aggregate.
CR Belouizdad won 8–1 on aggregate.