# 2019–20 CAF Champions League qualifying rounds

The 2019–20 CAF Champions League qualifying rounds were played from 9 August to 24 October 2019. A total of 61 teams competed in the qualifying rounds to decide the 16 places in the group stage of the 2019–20 CAF Champions League.

## Draw

The draw for the qualifying rounds was held on 21 July 2019 at the CAF headquarters in Cairo, Egypt.
The entry round of the 61 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 (3 teams) | Preliminary round (58 teams) |
| Teams | Espérance de Tunis (63.5 pts) Wydad AC (63 pts) TP Mazembe (63 pts) | Al-Ahly (57 pts) Étoile du Sahel (50 pts) Mamelodi Sundowns (49 pts) Zamalek (44 pts) Horoya (30 pts) Raja Casablanca (25 pts) USM Alger (25 pts) ZESCO United (24.5 pts) AS Vita Club (24 pts) Al-Hilal (19 pts) Enyimba (16 pts) 1º de Agosto (16 pts) Simba (15 pts) Orlando Pirates (14 pts) Gor Mahia (14 pts) KCCA (11 pts) Al-Merrikh (10 pts) Rayon Sports (8 pts) Asante Kotoko (5 pts) FC Platinum (5 pts) UD Songo (4 pts) Township Rollers (4 pts) Young Africans (3 pts) Petro de Luanda (2.5 pts) AS Otôho (2.5 pts) Stade Malien (1 pt) JS Kabylie Green Eagles Kano Pillars Hafia SO de l'Armée Al-Nasr Green Mamba Mekelle 70 Enderta ASC Kara UMS de Loum Rahimo Cercle Mbéri Sportif Buffles du Borgou Aigle Noir AS Tempête Mocaf Elect-Sport Fomboni Cano Sport Brikama United Matlama LPRC Oilers Fosa Juniors Big Bullets FC Nouadhibou Pamplemousses African Stars AS SONIDEP Génération Foot Côte d'Or Dekedaha Atlabara KMKM |

## 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 was applied, and if still tied, extra time was not played, and the penalty shoot-out was 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 | 9–11 August 2019 | 23–25 August 2019 |
| First round | 13–15 September 2019 | 27–29 September 2019 |

## Bracket

The bracket of the draw was announced by the CAF on 21 July 2019.
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 | AS Tempête Mocaf | 1 | 1 | 2 | | | | | |
| 4 | Al-Nasr | 0 | 3 | 3 | | | | | |
| 4 | Al-Nasr | 0 | 3 | 3 | Al-Nasr | Al-Nasr | 1 | 1 | 2 |
| | | | | | Raja Casablanca | Raja Casablanca | 3 | 1 | 4 |
| 3 | Brikama United | 3 | 0 | 3 | Raja Casablanca | Raja Casablanca | 3 | 1 | 4 |
| 2 | Raja Casablanca | 3 | 4 | 7 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | JS Kabylie (a) | 1 | 2 | 3 | | | | | |
| 4 | Al-Merrikh | 0 | 3 | 3 | | | | | |
| 4 | Al-Merrikh | 0 | 3 | 3 | JS Kabylie (p) | JS Kabylie (p) | 2 | 0 | 2 (5) |
| | | | | | Horoya | Horoya | 0 | 2 | 2 (3) |
| 3 | Stade Malien | 1 | 0 | 0 | Horoya | Horoya | 0 | 2 | 2 (3) |
| 2 | Horoya | 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 | 0 | 1 | | | | | |
| 4 | ASC Kara | 1 | 1 | 2 | | | | | |
| 4 | ASC Kara | 1 | 1 | 2 | ASC Kara | ASC Kara | 0 | 0 | 0 |
| | | | | | AS Vita Club | AS Vita Club | 0 | 1 | 1 |
| 3 | UMS de Loum | 0 | 0 | 0 | AS Vita Club | AS Vita Club | 0 | 1 | 1 |
| 2 | AS Vita Club | 0 | 1 | 1 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Rahimo | 1 | 0 | 1 | | | | | |
| 4 | Enyimba | 0 | 5 | 5 | | | | | |
| 4 | Enyimba | 0 | 5 | 5 | Enyimba | Enyimba | 0 | 0 | 0 |
| | | | | | Al-Hilal | Al-Hilal | 0 | 1 | 1 |
| 3 | Rayon Sports | 1 | 0 | 1 | Al-Hilal | Al-Hilal | 0 | 1 | 1 |
| 2 | Al-Hilal (a) | 1 | 0 | 1 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | AS SONIDEP | 1 | 1 | 2 | | | | | |
| 4 | USM Alger | 2 | 3 | 5 | | | | | |
| 4 | USM Alger | 2 | 3 | 5 | USM Alger | USM Alger | 4 | 2 | 6 |
| | | | | | Gor Mahia | Gor Mahia | 1 | 0 | 1 |
| 3 | Aigle Noir | 0 | 1 | 1 | Gor Mahia | Gor Mahia | 1 | 0 | 1 |
| 2 | Gor Mahia | 0 | 5 | 5 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Cano Sport | 2 | 1 | 3 | | | | | |
| 4 | Mekelle 70 Enderta | 1 | 1 | 2 | | | | | |
| 4 | Mekelle 70 Enderta | 1 | 1 | 2 | Cano Sport | Cano Sport | 0 | 0 | 0 |
| | | | | | Al-Ahly | Al-Ahly | 2 | 4 | 6 |
| 3 | Atlabara | 0 | 0 | 0 | Al-Ahly | Al-Ahly | 2 | 4 | 6 |
| 2 | Al-Ahly | 4 | 9 | 13 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | LPRC Oilers | 1 | 0 | 1 | | | | | |
| 4 | Génération Foot | 0 | 3 | 3 | | | | | |
| 4 | Génération Foot | 0 | 3 | 3 | Génération Foot | Génération Foot | 2 | 0 | 2 |
| | | | | | Zamalek (a) | Zamalek (a) | 1 | 1 | 2 |
| 3 | Dekedaha | 0 | 0 | 0 | Zamalek (a) | Zamalek (a) | 1 | 1 | 2 |
| 2 | Zamalek | 7 | 6 | 13 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Kano Pillars | 3 | 0 | 3 | | | | | |
| 4 | Asante Kotoko | 2 | 2 | 4 | | | | | |
| 4 | Asante Kotoko | 2 | 2 | 4 | Asante Kotoko | Asante Kotoko | 2 | 0 | 2 |
| | | | | | Étoile du Sahel | Étoile du Sahel | 0 | 3 | 3 |
| 3 | Hafia | 2 | 1 | 3 | Étoile du Sahel | Étoile du Sahel | 0 | 3 | 3 |
| 2 | Étoile du Sahel | 1 | 7 | 8 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Matlama | 0 | 0 | 0 | | | | | |
| 4 | Petro de Luanda | 2 | 2 | 4 | | | | | |
| 4 | Petro de Luanda | 2 | 2 | 4 | Petro de Luanda (a) | Petro de Luanda (a) | 0 | 1 | 1 |
| | | | | | KCCA | KCCA | 0 | 1 | 1 |
| 3 | African Stars | 3 | 0 | 3 | KCCA | KCCA | 0 | 1 | 1 |
| 2 | KCCA | 2 | 2 | 4 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Fomboni | 2 | 1 | 3 | | | | | |
| 4 | Côte d'Or (a) | 2 | 1 | 3 | | | | | |
| 4 | Côte d'Or (a) | 2 | 1 | 3 | Côte d'Or | Côte d'Or | 0 | 1 | 1 |
| | | | | | Mamelodi Sundowns | Mamelodi Sundowns | 5 | 11 | 16 |
| 3 | AS Otôho | 2 | 0 | 2 | Mamelodi Sundowns | Mamelodi Sundowns | 5 | 11 | 16 |
| 2 | Mamelodi Sundowns | 1 | 4 | 5 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | SO de l'Armée | 0 | 0 | 0 | | | | | |
| 4 | FC Nouadhibou | 0 | 1 | 1 | | | | | |
| 4 | FC Nouadhibou | 0 | 1 | 1 | FC Nouadhibou | FC Nouadhibou | 0 | 1 | 1 |
| | | | | | Wydad AC | Wydad AC | 2 | 4 | 6 |
| 3 | Wydad AC | | | Bye | Wydad AC | Wydad AC | 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 | Cercle Mbéri Sportif | 0 | 0 | 0 | | | | | |
| 4 | Elect-Sport | 0 | 2 | 2 | | | | | |
| 4 | Elect-Sport | 0 | 2 | 2 | Elect-Sport | Elect-Sport | 1 | 1 | 2 |
| | | | | | Espérance de Tunis | Espérance de Tunis | 1 | 2 | 3 |
| 3 | Espérance de Tunis | | | Bye | Espérance de Tunis | Espérance de Tunis | 1 | 2 | 3 |
| 2 | | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Young Africans | 1 | 1 | 2 | | | | | |
| 4 | Township Rollers | 1 | 0 | 1 | | | | | |
| 4 | Township Rollers | 1 | 0 | 1 | Young Africans | Young Africans | 1 | 1 | 2 |
| | | | | | ZESCO United | ZESCO United | 1 | 2 | 3 |
| 3 | Green Mamba | 0 | 0 | 0 | ZESCO United | ZESCO United | 1 | 2 | 3 |
| 2 | ZESCO United | 2 | 1 | 3 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Big Bullets | 0 | 2 | 2 | | | | | |
| 4 | FC Platinum | 0 | 3 | 3 | | | | | |
| 4 | FC Platinum | 0 | 3 | 3 | FC Platinum | FC Platinum | 1 | 4 | 5 |
| | | | | | UD Songo | UD Songo | 0 | 2 | 2 |
| 3 | UD Songo (a) | 0 | 1 | 1 | UD Songo | UD Songo | 0 | 2 | 2 |
| 2 | Simba | 0 | 1 | 1 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Green Eagles | 1 | 1 | 2 | | | | | |
| 4 | Orlando Pirates | 0 | 1 | 1 | | | | | |
| 4 | Orlando Pirates | 0 | 1 | 1 | Green Eagles | Green Eagles | 1 | 1 | 2 |
| | | | | | 1º de Agosto (a) | 1º de Agosto (a) | 2 | 0 | 2 |
| 3 | KMKM | 0 | 0 | 0 | 1º de Agosto (a) | 1º de Agosto (a) | 2 | 0 | 2 |
| 2 | 1º de Agosto | 2 | 2 | 4 | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | First round |
| 1 | Fosa Juniors | 1 | 1 | 2 | | | | | |
| 4 | Pamplemousses | 0 | 1 | 1 | | | | | |
| 4 | Pamplemousses | 0 | 1 | 1 | Fosa Juniors | Fosa Juniors | 0 | 1 | 1 |
| | | | | | TP Mazembe | TP Mazembe | 0 | 3 | 3 |
| 3 | TP Mazembe | | | Bye | TP Mazembe | TP Mazembe | 0 | 3 | 3 |
| 2 | | | | | | | | | |

## Preliminary round

The preliminary round included the 58 teams that did not receive byes to the first round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Brikama United | 3–7 | Raja Casablanca | 3–3 | 0–4 |
| AS Tempête Mocaf | 2–3 | Al-Nasr | 1–0 | 1–3 |
| JS Kabylie | 3–3 (a) | Al-Merrikh | 1–0 | 2–3 |
| Stade Malien | 1–2 | Horoya | 1–1 | 0–1 |
| Buffles du Borgou | 1–2 | ASC Kara | 1–1 | 0–1 |
| UMS de Loum | 0–1 | AS Vita Club | 0–0 | 0–1 |
| Rayon Sports | 1–1 (a) | Al-Hilal | 1–1 | 0–0 |
| Rahimo | 1–5 | Enyimba | 1–0 | 0–5 |
| AS SONIDEP | 2–5 | USM Alger | 1–2 | 1–3 |
| Aigle Noir | 1–5 | Gor Mahia | 0–0 | 1–5 |
| Atlabara | 0–13 | Al-Ahly | 0–4 | 0–9 |
| Cano Sport | 3–2 | Mekelle 70 Enderta | 2–1 | 1–1 |
| Dekedaha | 0–13 | Zamalek | 0–7 | 0–6 |
| LPRC Oilers | 1–3 | Génération Foot | 1–0 | 0–3 |
| Hafia | 3–8 | Étoile du Sahel | 2–1 | 1–7 |
| Kano Pillars | 3–4 | Asante Kotoko | 3–2 | 0–2 |
| African Stars | 3–4 | KCCA | 3–2 | 0–2 |
| Matlama | 0–4 | Petro de Luanda | 0–2 | 0–2 |
| Fomboni | 3–3 (a) | Côte d'Or | 2–2 | 1–1 |
| AS Otôho | 2–5 | Mamelodi Sundowns | 2–1 | 0–4 |
| SO de l'Armée | 0–1 | FC Nouadhibou | 0–0 | 0–1 |
| Cercle Mbéri Sportif | 0–2 | Elect-Sport | 0–0 | 0–2 |
| Green Mamba | 0–3 | ZESCO United | 0–2 | 0–1 |
| Young Africans | 2–1 | Township Rollers | 1–1 | 1–0 |
| Big Bullets | 2–3 | FC Platinum | 0–0 | 2–3 |
| UD Songo | 1–1 (a) | Simba | 0–0 | 1–1 |
| KMKM | 0–4 | 1º de Agosto | 0–2 | 0–2 |
| Green Eagles | 2–1 | Orlando Pirates | 1–0 | 1–1 |
| Fosa Juniors | 2–1 | Pamplemousses | 1–0 | 1–1 |
Raja Casablanca won 7–3 on aggregate.
Al-Nasr won 3–2 on aggregate.
3–3 on aggregate. JS Kabylie won on away goals.
Horoya won 2–1 on aggregate.
ASC Kara won 2–1 on aggregate.
AS Vita Club won 1–0 on aggregate.
1–1 on aggregate. Al-Hilal won on away goals.
Enyimba won 5–1 on aggregate.
USM Alger won 5–2 on aggregate.
Gor Mahia won 5–1 on aggregate.
Al-Ahly won 13–0 on aggregate.
Cano Sport won 3–2 on aggregate.
Zamalek won 13–0 on aggregate.
Génération Foot won 3–1 on aggregate.
Étoile du Sahel won 8–3 on aggregate.
Asante Kotoko won 4–3 on aggregate.
KCCA won 4–3 on aggregate.
Petro de Luanda won 4–0 on aggregate.
3–3 on aggregate. Côte d'Or won on away goals.
Mamelodi Sundowns won 5–2 on aggregate.
FC Nouadhibou won 1–0 on aggregate.
Elect-Sport won 2–0 on aggregate.
ZESCO United won 3–0 on aggregate.
Young Africans won 2–1 on aggregate.
FC Platinum won 3–2 on aggregate.
1–1 on aggregate. UD Songo won on away goals.
1º de Agosto won 4–0 on aggregate.
Green Eagles won 2–1 on aggregate.
Fosa Juniors won 2–1 on aggregate.

## First round

The first round, also called the second preliminary round, included 32 teams: the 3 teams that received byes to this round, and the 29 winners of the preliminary round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Al-Nasr | 2–4 | Raja Casablanca | 1–3 | 1–1 |
| JS Kabylie | 2–2 (5–3 p) | Horoya | 2–0 | 0–2 |
| ASC Kara | 0–1 | AS Vita Club | 0–0 | 0–1 |
| Enyimba | 0–1 | Al-Hilal | 0–0 | 0–1 |
| USM Alger | 6–1 | Gor Mahia | 4–1 | 2–0 |
| Cano Sport | 0–6 | Al-Ahly | 0–2 | 0–4 |
| Génération Foot | 2–2 (a) | Zamalek | 2–1 | 0–1 |
| Asante Kotoko | 2–3 | Étoile du Sahel | 2–0 | 0–3 |
| Petro de Luanda | 1–1 (a) | KCCA | 0–0 | 1–1 |
| Côte d'Or | 1–16 | Mamelodi Sundowns | 0–5 | 1–11 |
| FC Nouadhibou | 1–6 | Wydad AC | 0–2 | 1–4 |
| Elect-Sport | 2–3 | Espérance de Tunis | 1–1 | 1–2 |
| Young Africans | 2–3 | ZESCO United | 1–1 | 1–2 |
| FC Platinum | 5–2 | UD Songo | 1–0 | 4–2 |
| Green Eagles | 2–2 (a) | 1º de Agosto | 1–2 | 1–0 |
| Fosa Juniors | 1–3 | TP Mazembe | 0–0 | 1–3 |
Raja Casablanca won 4–2 on aggregate.
2–2 on aggregate. JS Kabylie won 5–4 on penalties.
AS Vita Club won 1–0 on aggregate.
Al-Hilal won 1–0 on aggregate.
USM Alger won 6–1 on aggregate.
Al-Ahly won 6–0 on aggregate.
2–2 on aggregate. Zamalek won on away goals.
Étoile du Sahel won 3–2 on aggregate.
1–1 on aggregate. Petro de Luanda won on away goals.
Mamelodi Sundowns won 16–1 on aggregate.
Wydad AC won 6–1 on aggregate.
Espérance de Tunis won 3–2 on aggregate.
ZESCO United won 3–2 on aggregate.
FC Platinum won 5–2 on aggregate.
2–2 on aggregate. 1º de Agosto won on away goals.
TP Mazembe won 3–1 on aggregate.