# 2016 CAF Champions League qualifying rounds

The 2016 CAF Champions League qualifying rounds were played from 12 February to 20 April 2016. A total of 55 teams competed in the qualifying rounds to decide the eight places in the group stage of the 2016 CAF Champions League.

## Draw

The draw for the preliminary, first and second rounds was held on 11 December 2015 in Dakar, Senegal.
The entry round of the 55 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 | Preliminary round |
| Teams | Al-Ahly (53 pts) TP Mazembe (52 pts) ES Sétif (33 pts) Al-Hilal (30 pts) Étoile du Sahel (27 pts) AC Léopards (24 pts) Zamalek (22 pts) Al-Merrikh (19 pts) Coton Sport (19 pts) | AS Vita Club (16 pts) Stade Malien (13 pts) Wydad AC (6 pts) ASEC Mimosas (5 pts) Club Africain (3 pts) Enyimba (3 pts) Recreativo do Libolo (3 pts) Saint George (3 pts) MO Béjaïa AS Tanda Olympique Khouribga Union Douala Étoile du Congo Onze Créateurs Warri Wolves Kaizer Chiefs Mamelodi Sundowns Al-Ahli Tripoli Ashanti Gold ZESCO United AS Douanes Niamey Chicken Inn Centre Chiefs RC Bobo Dioulasso Vital'O AS CotonTchad Volcan Club Racing de Micomeseng AS Mangasport Gamtel Horoya Gor Mahia Lioli Nimba United CNaPS Sport Cercle de Joachim Ferroviário Maputo APR Sporting Praia Cruz AS Douanes Dakar St Michel United Al-Ghazal Mbabane Swallows Young Africans Vipers Mafunzo |

## 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 each round was as follows.
| Round | First leg | Second leg |
| Preliminary round | 12–14 February 2016 | 26–28 February 2016 |
| First round | 11–13 March 2016 | 18–20 March 2016 |
| Second round | 8–10 April 2016 | 19–20 April 2016 |

## Bracket

The eight winners of the second round advanced to the group stage, while the eight losers of the second round entered the Confederation Cup play-off round.
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Mafunzo | 0 | 0 | 0 | | | | | | | | |
| AS Vita Club | 3 | 1 | 4 | | | | | | | | |
| AS Vita Club | 3 | 1 | 4 | AS Vita Club | 1 | 1 | 2 | | | | |
| | | | | Ferroviário Maputo | 0 | 1 | 1 | | | | |
| Centre Chiefs | — | — | — | Ferroviário Maputo | 0 | 1 | 1 | | | | |
| Ferroviário Maputo (w/o) | — | — | — | | | | | | | | |
| Ferroviário Maputo (w/o) | — | — | — | | | | | AS Vita Club (a) (d/q) | 1 | 1 | 2 |
| | | | | | | | | Mamelodi Sundowns (w/o) | 0 | 2 | 2 |
| Chicken Inn | 1 | 0 | 1 | | | | | | | | | Mamelodi Sundowns (w/o) | 0 | 2 | 2 |
| Mamelodi Sundowns | 0 | 2 | 2 | | | | | | | | |
| Mamelodi Sundowns | 0 | 2 | 2 | Mamelodi Sundowns | 2 | 1 | 3 | | | | |
| | | | | AC Léopards | 0 | 1 | 1 | | | | |
| AC Léopards | — | — | — | AC Léopards | 0 | 1 | 1 | | | | |
| Bye | — | — | — | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Warri Wolves (w/o) | — | — | — | | | | | | | | |
| Sporting Praia Cruz | — | — | — | | | | | | | | |
| Sporting Praia Cruz | — | — | — | Warri Wolves | 0 | 0 | 0 | | | | |
| | | | | Al-Merrikh | 1 | 1 | 2 | | | | |
| Al-Merrikh | — | — | — | Al-Merrikh | 1 | 1 | 2 | | | | |
| Bye | — | — | — | | | | | | | | |
| Bye | — | — | — | | | | | Al-Merrikh | 2 | 0 | 2 |
| | | | | | | | | ES Sétif (a) | 2 | 0 | 2 |
| AS Mangasport | 0 | 0 | 0 | | | | | | | | | ES Sétif (a) | 2 | 0 | 2 |
| Étoile du Congo | 0 | 3 | 3 | | | | | | | | |
| Étoile du Congo | 0 | 3 | 3 | Étoile du Congo | 1 | 2 | 3 | | | | |
| | | | | ES Sétif | 1 | 4 | 5 | | | | |
| ES Sétif | — | — | — | ES Sétif | 1 | 4 | 5 | | | | |
| Bye | — | — | — | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Wydad AC | 2 | 1 | 3 | | | | | | | | |
| AS Douanes Niamey | 0 | 2 | 2 | | | | | | | | |
| AS Douanes Niamey | 0 | 2 | 2 | Wydad AC | 5 | 1 | 6 | | | | |
| | | | | CNaPS Sport | 1 | 2 | 3 | | | | |
| Gor Mahia | 1 | 0 | 1 | CNaPS Sport | 1 | 2 | 3 | | | | |
| CNaPS Sport | 2 | 1 | 3 | | | | | | | | |
| CNaPS Sport | 2 | 1 | 3 | | | | | Wydad AC | 2 | 1 | 3 |
| | | | | | | | | TP Mazembe | 0 | 1 | 1 |
| Saint George | 3 | 1 | 4 | | | | | | | | | TP Mazembe | 0 | 1 | 1 |
| St Michel United | 0 | 1 | 1 | | | | | | | | |
| St Michel United | 0 | 1 | 1 | Saint George | 2 | 0 | 2 | | | | |
| | | | | TP Mazembe | 2 | 1 | 3 | | | | |
| TP Mazembe | — | — | — | TP Mazembe | 2 | 1 | 3 | | | | |
| Bye | — | — | — | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Vipers | 1 | 0 | 1 | | | | | | | | |
| Enyimba | 0 | 2 | 2 | | | | | | | | |
| Enyimba | 0 | 2 | 2 | Enyimba | 5 | 1 | 6 | | | | |
| | | | | Vital'O | 1 | 2 | 3 | | | | |
| Lioli | 1 | 1 | 2 | Vital'O | 1 | 2 | 3 | | | | |
| Vital'O (a) | 2 | 0 | 2 | | | | | | | | |
| Vital'O (a) | 2 | 0 | 2 | | | | | Enyimba (p) | 3 | 0 | 3 (4) |
| | | | | | | | | Étoile du Sahel | 0 | 3 | 3 (3) |
| Olympique Khouribga | 2 | 2 | 4 | | | | | | | | | Étoile du Sahel | 0 | 3 | 3 (3) |
| Gamtel | 1 | 1 | 2 | | | | | | | | |
| Gamtel | 1 | 1 | 2 | Olympique Khouribga | 1 | 0 | 1 | | | | |
| | | | | Étoile du Sahel | 1 | 2 | 3 | | | | |
| Étoile du Sahel | — | — | — | Étoile du Sahel | 1 | 2 | 3 | | | | |
| Bye | — | — | — | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Stade Malien | 3 | 1 | 4 | | | | | | | | |
| RC Bobo Dioulasso | 1 | 0 | 1 | | | | | | | | |
| RC Bobo Dioulasso | 1 | 0 | 1 | Stade Malien | 2 | 0 | 2 | | | | |
| | | | | Coton Sport | 0 | 1 | 1 | | | | |
| Coton Sport | — | — | — | Coton Sport | 0 | 1 | 1 | | | | |
| Bye | — | — | — | | | | | | | | |
| Bye | — | — | — | | | | | Stade Malien | 1 | 1 | 2 |
| | | | | | | | | ZESCO United | 3 | 2 | 5 |
| ZESCO United | 2 | 1 | 3 | | | | | | | | | ZESCO United | 3 | 2 | 5 |
| Al-Ghazal | 0 | 0 | 0 | | | | | | | | |
| Al-Ghazal | 0 | 0 | 0 | ZESCO United | 4 | 0 | 4 | | | | |
| | | | | Horoya | 1 | 2 | 3 | | | | |
| AS Douanes Dakar | 0 | 0 | 0 | Horoya | 1 | 2 | 3 | | | | |
| Horoya | 0 | 4 | 4 | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Mbabane Swallows | 1 | 1 | 2 | | | | | | | | |
| APR | 0 | 4 | 4 | | | | | | | | |
| APR | 0 | 4 | 4 | APR | 1 | 1 | 2 | | | | |
| | | | | Young Africans | 2 | 1 | 3 | | | | |
| Cercle de Joachim | 0 | 0 | 0 | Young Africans | 2 | 1 | 3 | | | | |
| Young Africans | 1 | 2 | 3 | | | | | | | | |
| Young Africans | 1 | 2 | 3 | | | | | Young Africans | 1 | 1 | 2 |
| | | | | | | | | Al-Ahly | 1 | 2 | 3 |
| Recreativo do Libolo | 5 | 4 | 9 | | | | | | | | | Al-Ahly | 1 | 2 | 3 |
| Racing de Micomeseng | 1 | 0 | 1 | | | | | | | | |
| Racing de Micomeseng | 1 | 0 | 1 | Recreativo do Libolo | 0 | 0 | 0 | | | | |
| | | | | Al-Ahly | 0 | 2 | 2 | | | | |
| Al-Ahly | — | — | — | Al-Ahly | 0 | 2 | 2 | | | | |
| Bye | — | — | — | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Volcan Club | 0 | — | — | | | | | | | | |
| Kaizer Chiefs (w/o) | 4 | — | — | | | | | | | | |
| Kaizer Chiefs (w/o) | 4 | — | — | Kaizer Chiefs | 0 | 0 | 0 | | | | |
| | | | | ASEC Mimosas | 1 | 0 | 1 | | | | |
| AS CotonTchad | 0 | 0 | 0 | ASEC Mimosas | 1 | 0 | 1 | | | | |
| ASEC Mimosas | 1 | 0 | 1 | | | | | | | | |
| ASEC Mimosas | 1 | 0 | 1 | | | | | ASEC Mimosas | 2 | 1 | 3 |
| | | | | | | | | Al-Ahli Tripoli | 0 | 2 | 2 |
| Onze Créateurs | 1 | 0 | 1 | | | | | | | | | Al-Ahli Tripoli | 0 | 2 | 2 |
| Al-Ahli Tripoli | 2 | 0 | 2 | | | | | | | | |
| Al-Ahli Tripoli | 2 | 0 | 2 | Al-Ahli Tripoli (a) | 1 | 1 | 2 | | | | |
| | | | | Al-Hilal | 0 | 2 | 2 | | | | |
| Al-Hilal | — | — | — | Al-Hilal | 0 | 2 | 2 | | | | |
| Bye | — | — | — | | | | | | | | |
| Preliminary round | Preliminary round | Preliminary round | Preliminary round | First round | First round | First round | First round | Second round | Second round | Second round | Second round |
| Nimba United | 1 | 0 | 1 | | | | | | | | |
| Union Douala | 3 | 1 | 4 | | | | | | | | |
| Union Douala | 3 | 1 | 4 | Union Douala | 0 | 0 | 0 | | | | |
| | | | | Zamalek | 1 | 2 | 3 | | | | |
| Zamalek | — | — | — | Zamalek | 1 | 2 | 3 | | | | |
| Bye | — | — | — | | | | | | | | |
| Bye | — | — | — | | | | | Zamalek | 2 | 1 | 3 |
| | | | | | | | | MO Béjaïa | 0 | 1 | 1 |
| Club Africain | 2 | 0 | 2 | | | | | | | | | MO Béjaïa | 0 | 1 | 1 |
| AS Tanda | 0 | 0 | 0 | | | | | | | | |
| AS Tanda | 0 | 0 | 0 | Club Africain | 1 | 0 | 1 | | | | |
| | | | | MO Béjaïa | 0 | 2 | 2 | | | | |
| Ashanti Gold | 1 | 1 | 2 | MO Béjaïa | 0 | 2 | 2 | | | | |
| MO Béjaïa | 0 | 3 | 3 | | | | | | | | |

## Preliminary round

The preliminary round included the 46 teams that did not receive byes to the first round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Mafunzo | 0–4 | AS Vita Club | 0–3 | 0–1 |
| Centre Chiefs | w/o | Ferroviário Maputo | — | — |
| Chicken Inn | 1–2 | Mamelodi Sundowns | 1–0 | 0–2 |
| Warri Wolves | w/o | Sporting Praia Cruz | — | — |
| AS Mangasport | 0–3 | Étoile du Congo | 0–0 | 0–3 |
| Wydad AC | 3–2 | AS Douanes Niamey | 2–0 | 1–2 |
| Gor Mahia | 1–3 | CNaPS Sport | 1–2 | 0–1 |
| Saint George | 4–1 | St Michel United | 3–0 | 1–1 |
| Vipers | 1–2 | Enyimba | 1–0 | 0–2 |
| Lioli | 2–2 (a) | Vital'O | 1–2 | 1–0 |
| Olympique Khouribga | 4–2 | Gamtel | 2–1 | 2–1 |
| Stade Malien | 4–1 | RC Bobo Dioulasso | 3–1 | 1–0 |
| ZESCO United | 3–0 | Al-Ghazal | 2–0 | 1–0 |
| AS Douanes Dakar | 0–4 | Horoya | 0–0 | 0–4 |
| Mbabane Swallows | 2–4 | APR | 1–0 | 1–4 |
| Cercle de Joachim | 0–3 | Young Africans | 0–1 | 0–2 |
| Recreativo do Libolo | 9–1 | Racing de Micomeseng | 5–1 | 4–0 |
| Volcan Club | w/o | Kaizer Chiefs | 0–4 | — |
| AS CotonTchad | 0–1 | ASEC Mimosas | 0–1 | 0–0 |
| Onze Créateurs | 1–2 | Al-Ahli Tripoli | 1–2 | 0–0 |
| Nimba United | 1–4 | Union Douala | 1–3 | 0–1 |
| Club Africain | 2–0 | AS Tanda | 2–0 | 0–0 |
| Ashanti Gold | 2–3 | MO Béjaïa | 1–0 | 1–3 |
AS Vita Club won 4–0 on aggregate.
Ferroviário Maputo won on walkover after Centre Chiefs withdrew.
Mamelodi Sundowns won 2–1 on aggregate.
Warri Wolves won on walkover after Sporting Praia Cruz failed to arrive for the first leg.
Étoile du Congo won 3–0 on aggregate.
Wydad AC won 3–2 on aggregate.
CNaPS Sport won 3–1 on aggregate.
Saint George won 4–1 on aggregate.
Enyimba won 2–1 on aggregate.
2–2 on aggregate. Vital'O won on away goals.
Olympique Khouribga won 4–2 on aggregate.
Stade Malien won 4–1 on aggregate.
ZESCO United won 3–0 on aggregate.
Horoya won 4–0 on aggregate.
APR won 4–2 on aggregate.
Young Africans won 3–0 on aggregate.
Recreativo do Libolo won 9–1 on aggregate.
Kaizer Chiefs won on walkover after Volcan Club failed to arrive for the second leg.
ASEC Mimosas won 1–0 on aggregate.
Al-Ahli Tripoli won 2–1 on aggregate.
Union Douala won 4–1 on aggregate.
Club Africain won 2–0 on aggregate.
MO Béjaïa won 3–2 on aggregate.

## First round

The first round included 32 teams: the 23 winners of the preliminary round, and the 9 teams that received byes to this round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| AS Vita Club | 2–1 | Ferroviário Maputo | 1–0 | 1–1 |
| Mamelodi Sundowns | 3–1 | AC Léopards | 2–0 | 1–1 |
| Warri Wolves | 0–2 | Al-Merrikh | 0–1 | 0–1 |
| Étoile du Congo | 3–5 | ES Sétif | 1–1 | 2–4 |
| Wydad AC | 6–3 | CNaPS Sport | 5–1 | 1–2 |
| Saint George | 2–3 | TP Mazembe | 2–2 | 0–1 |
| Enyimba | 6–3 | Vital'O | 5–1 | 1–2 |
| Olympique Khouribga | 1–3 | Étoile du Sahel | 1–1 | 0–2 |
| Stade Malien | 2–1 | Coton Sport | 2–0 | 0–1 |
| ZESCO United | 4–3 | Horoya | 4–1 | 0–2 |
| APR | 2–3 | Young Africans | 1–2 | 1–1 |
| Recreativo do Libolo | 0–2 | Al-Ahly | 0–0 | 0–2 |
| Kaizer Chiefs | 0–1 | ASEC Mimosas | 0–1 | 0–0 |
| Al-Ahli Tripoli | 2–2 (a) | Al-Hilal | 1–0 | 1–2 |
| Union Douala | 0–3 | Zamalek | 0–1 | 0–2 |
| Club Africain | 1–2 | MO Béjaïa | 1–0 | 0–2 |
AS Vita Club won 2–1 on aggregate.
Mamelodi Sundowns won 3–1 on aggregate.
Al-Merrikh won 2–0 on aggregate.
ES Sétif won 5–3 on aggregate.
Wydad AC won 6–3 on aggregate.
TP Mazembe won 3–2 on aggregate.
Enyimba won 6–3 on aggregate.
Étoile du Sahel won 3–1 on aggregate.
Stade Malien won 2–1 on aggregate.
ZESCO United won 4–3 on aggregate.
Young Africans won 3–2 on aggregate.
Al-Ahly won 2–0 on aggregate.
ASEC Mimosas won 1–0 on aggregate.
2–2 on aggregate. Al-Ahli Tripoli won on away goals
Zamalek won 3–0 on aggregate.
MO Béjaïa won 2–1 on aggregate.

## Second round

The second round included the 16 winners of the first round.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| AS Vita Club | 2–2 (a) d/q; w/o | Mamelodi Sundowns | 1–0 | 1–2 |
| Al-Merrikh | 2–2 (a) | ES Sétif | 2–2 | 0–0 |
| Wydad AC | 3–1 | TP Mazembe | 2–0 | 1–1 |
| Enyimba | 3–3 (4–3 p) | Étoile du Sahel | 3–0 | 0–3 |
| Stade Malien | 2–5 | ZESCO United | 1–3 | 1–2 |
| Young Africans | 2–3 | Al-Ahly | 1–1 | 1–2 |
| ASEC Mimosas | 3–2 | Al-Ahli Tripoli | 2–0 | 1–2 |
| Zamalek | 3–1 | MO Béjaïa | 2–0 | 1–1 |
2–2 on aggregate. AS Vita Club won on away goals. The CAF announced on 24 May 2016 that Mamelodi Sundowns won on walkover after AS Vita Club were disqualified for fielding an ineligible player in their preliminary round tie against Mafunzo. Mamelodi Sundowns played in the Confederation Cup play-off round before they were reinstated to the Champions League.
2–2 on aggregate. ES Sétif won on away goals.
Wydad AC won 3–1 on aggregate.
3–3 on aggregate. Enyimba won 4–3 on penalties.
ZESCO United won 5–2 on aggregate.
Al-Ahly won 3–2 on aggregate.
ASEC Mimosas won 3–2 on aggregate.
Zamalek won 3–1 on aggregate.