# 2017 CAF Champions League

The 2017 CAF Champions League (officially the 2017 Total CAF Champions League for sponsorship reasons) was the 53rd edition of Africa's premier club football tournament organized by the Confederation of African Football (CAF), and the 21st edition under the current CAF Champions League title.
Starting from this season, the group stage was expanded from eight to 16 teams, divided into four groups of four, and the knockout stage expanded from 4 to 8 teams.
Wydad AC defeated Al Ahly in the final to win their second African Cup of Champions Clubs/CAF Champions League title, and qualified as the CAF representative at the 2017 FIFA Club World Cup in the United Arab Emirates, and also earned the right to play against the winners of the 2017 CAF Confederation Cup, TP Mazembe, in the 2018 CAF Super Cup. Mamelodi Sundowns were the defending champions, but were eliminated in the quarter-finals by Wydad Casablanca.

## 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 2017 CAF Champions League, the CAF uses the 2011–2015 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 | 5 points | 4 points |
| Runners-up | 4 points | 3 points |
| Losing semi-finalists | 3 points | 2 points |
| 3rd place in groups | 2 points | 1 point |
| 4th place in groups | 1 point | 1 point |
The points are multiplied by a coefficient according to the year as follows:
* 2015 – 5
* 2014 – 4
* 2013 – 3
* 2012 – 2
* 2011 – 1

## Teams

The following 55 teams from 43 associations entered the competition.
* Teams in bold received a bye to the first round.
* The other teams entered the preliminary round.
Associations are shown according to their 2011–2015 CAF 5-year ranking – those with a ranking score have their rank and score indicated.
| Association | Team | Qualifying method |
| Associations eligible to enter two teams (Ranked 1–12) |||
| Tunisia (1st – 100 pts) | Étoile du Sahel | 2015–16 Tunisian Ligue Professionnelle 1 champions |
| Tunisia (1st – 100 pts) | Espérance de Tunis | 2015–16 Tunisian Ligue Professionnelle 1 runners-up |
| Egypt (2nd – 80 pts) | Al Ahly | 2015–16 Egyptian Premier League champions |
| Egypt (2nd – 80 pts) | Zamalek | 2015–16 Egyptian Premier League runners-up |
| DR Congo (3rd – 69 pts) | TP Mazembe | 2015–16 Linafoot champions |
| DR Congo (3rd – 69 pts) | AS Vita Club | 2015–16 Linafoot runners-up |
| Algeria (4th – 64 pts) | USM Alger | 2015–16 Algerian Ligue Professionnelle 1 champions |
| Algeria (4th – 64 pts) | JS Saoura | 2015–16 Algerian Ligue Professionnelle 1 runners-up |
| Sudan (5th – 51 pts) | Al-Hilal | 2016 Sudan Premier League champions |
| Sudan (5th – 51 pts) | Al-Merrikh | 2016 Sudan Premier League runners-up |
| South Africa (6th – 27 pts) | Mamelodi Sundowns | Title holders (2016 CAF Champions League winners) 2015–16 South African Premier Division champions |
| South Africa (6th – 27 pts) | Bidvest Wits | 2015–16 South African Premier Division runners-up |
| Congo (T-7th – 24 pts) | AC Léopards | 2016 Congo Ligue 1 champions |
| Congo (T-7th – 24 pts) | Diables Noirs | 2016 Congo Ligue 1 runners-up |
| Morocco (T-7th – 24 pts) | FUS Rabat | 2015–16 Botola champions |
| Morocco (T-7th – 24 pts) | Wydad AC | 2015–16 Botola runners-up |
| Ivory Coast (T-9th – 23 pts) | AS Tanda | 2015–16 Côte d'Ivoire Ligue 1 champions |
| Ivory Coast (T-9th – 23 pts) | Séwé Sport | 2015–16 Côte d'Ivoire Ligue 1 runners-up |
| Mali (T-9th – 23 pts) | Stade Malien | 2016 Malian Première Division champions |
| Mali (T-9th – 23 pts) | AS Real Bamako | 2016 Malian Première Division runners-up |
| Cameroon (11th – 19 pts) | UMS de Loum | 2016 Elite One champions |
| Cameroon (11th – 19 pts) | Coton Sport | 2016 Elite One runners-up |
| Nigeria (12th – 12 pts) | Enugu Rangers | 2016 Nigeria Professional Football League champions |
| Nigeria (12th – 12 pts) | Rivers United | 2016 Nigeria Professional Football League runners-up |
| Associations eligible to enter one team |||
| Angola (13th – 7 pts) | 1º de Agosto | 2016 Girabola champions |
| Ghana (T-14th – 4 pts) | Wa All Stars | 2016 Ghanaian Premier League champions |
| Libya (T-14th – 4 pts) | Al-Ahli Tripoli | 2016 Libyan Premier League champions |
| Zambia (T-14th – 4 pts) | Zanaco | 2016 Zambia Super League champions |
| Ethiopia (17th – 3 pts) | Saint George | 2015–16 Ethiopian Premier League champions |
| Botswana | Township Rollers | 2015–16 Botswana Premier League champions |
| Burkina Faso | Rail Club du Kadiogo | 2015–16 Burkinabé Premier League champions |
| Burundi | Vital'O | 2015–16 Burundi Premier League champions |
| Comoros | Ngaya Club | 2016 Comoros Premier League champions |
| Equatorial Guinea | Sony Elá Nguema | 2015–16 Equatoguinean Primera División champions |
| Gabon | CF Mounana | 2015–16 Gabon Championnat National D1 champions |
| Gambia | Gambia Ports Authority | 2015–16 GFA League First Division champions |
| Guinea | Horoya | 2015–16 Guinée Championnat National champions |
| Kenya | Tusker | 2016 Kenyan Premier League champions |
| Lesotho | Lioli | 2015–16 Lesotho Premier League champions |
| Liberia | Barrack Young Controllers | 2016 Liberian First Division League champions |
| Madagascar | CNaPS Sport | 2016 THB Champions League champions |
| Mauritius | AS Port-Louis 2000 | 2015–16 Mauritian Premier League champions |
| Mozambique | Ferroviário Beira | 2016 Moçambola champions |
| Niger | AS FAN | 2015–16 Niger Premier League champions |
| Réunion | Saint-Louisienne | 2015 Réunion Premier League runners-up |
| Rwanda | APR | 2015–16 Rwanda National Football League champions |
| Senegal | US Gorée | 2015–16 Senegal Premier League champions |
| Seychelles | Côte d'Or | 2016 Seychelles First Division champions |
| Sierra Leone | Johansen | 2016 Sierra Leonean FA Cup winners |
| South Sudan | Atlabara | 2015 South Sudan Football Championship champions |
| Swaziland | Royal Leopards | 2015–16 Swazi Premier League champions |
| Tanzania | Young Africans | 2015–16 Tanzanian Premier League champions |
| Uganda | KCCA | 2015–16 Uganda Super League champions |
| Zanzibar | Zimamoto | 2015–16 Zanzibar Premier League champions |
| Zimbabwe | CAPS United | 2016 Zimbabwe Premier Soccer League champions |

### Notes

* ^ Réunion (REU): Réunion were represented by Saint-Louisienne, 2015 Réunion Premier League runners-up, as the 2016 Réunion Premier League was not completed by the end of the year.
* ^ Sierra Leone (SLE): Sierra Leone were represented by Johansen, the 2016 Sierra Leonean FA Cup winners, as the league was not played in 2016.
* ^ South Sudan (SSD): South Sudan were represented by Atlabara, the 2015 South Sudan Football Championship champions, as the league was not played in 2016.

### Associations which did not enter a team

* Benin
* Cape Verde
* Central African Republic
* Chad
* Djibouti
* Eritrea
* Guinea-Bissau
* Malawi
* Mauritania
* Namibia
* São Tomé and Príncipe
* Somalia
* Togo

## Schedule

The schedule of the competition was as follows (matches scheduled in midweek in italics).
| Phase | Round | Draw date | First leg | Second leg |
| Qualifying | Preliminary round | 21 December 2016 (Cairo, Egypt) | 10–12 February 2017 | 17–19 February 2017 |
| Qualifying | First round | 21 December 2016 (Cairo, Egypt) | 10–12 March 2017 | 17–19 March 2017 |
| Group stage | Matchday 1 | 26 April 2017 (Cairo, Egypt) | 12–14 May 2017 | 12–14 May 2017 |
| Group stage | Matchday 2 | 26 April 2017 (Cairo, Egypt) | 23–24 May 2017 | 23–24 May 2017 |
| Group stage | Matchday 3 | 26 April 2017 (Cairo, Egypt) | 2–4 June 2017 | 2–4 June 2017 |
| Group stage | Matchday 4 | 26 April 2017 (Cairo, Egypt) | 20–21 June 2017 | 20–21 June 2017 |
| Group stage | Matchday 5 | 26 April 2017 (Cairo, Egypt) | 30 June – 2 July 2017 | 30 June – 2 July 2017 |
| Group stage | Matchday 6 | 26 April 2017 (Cairo, Egypt) | 7–9 July 2017 | 7–9 July 2017 |
| Knockout stage | Quarter-finals | 26 April 2017 (Cairo, Egypt) | 15–17 September 2017 | 22–24 September 2017 |
| Knockout stage | Semi-finals | 26 April 2017 (Cairo, Egypt) | 29 September – 1 October 2017 | 20–22 October 2017 |
| Knockout stage | Final | 26 April 2017 (Cairo, Egypt) | 27–29 October 2017 | 3–5 November 2017 |
The calendar was amended from the original one for the following dates:
* Quarter-finals first leg: moved from 8–10 September to 15–17 September
* Quarter-finals second leg: moved from 15–17 September to 22–24 September
* Semi-finals second leg: moved from 13–15 October to 20–22 October

## Qualifying rounds

The draw for the preliminary round and first round was held on 21 December 2016 at the CAF headquarters in Cairo, Egypt.
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 |
| Rail Club du Kadiogo | 3–1 | Diables Noirs | 3–0 | 0–1 |
| Sony Elá Nguema | 1–5 | Al-Merrikh | 0–1 | 1–4 |
| AS Real Bamako | 0–4 | Rivers United | 0–0 | 0–4 |
| AS Tanda | 4–3 | AS FAN | 3–0 | 1–3 |
| US Gorée | 1–2 | Horoya | 0–0 | 1–2 |
| Johansen | 1–4 | FUS Rabat | 1–1 | 0–3 |
| Wa All Stars | 1–5 | Al-Ahli Tripoli | 1–3 | 0–2 |
| KCCA | 2–2 (a) | 1º de Agosto | 1–0 | 1–2 |
| CF Mounana | 3–0 | Vital'O | 2–0 | 1–0 |
| Zanaco | 1–0 | APR | 0–0 | 1–0 |
| Ngaya Club | 2–6 | Young Africans | 1–5 | 1–1 |
| Barrack Young Controllers | 1–1 (7–6 p) | Stade Malien | 1–0 | 0–1 |
| Zimamoto | 3–4 | Ferroviário Beira | 2–1 | 1–3 |
| JS Saoura | 1–1 (a) | Enugu Rangers | 1–1 | 0–0 |
| Royal Leopards | 1–4 | AS Vita Club | 0–1 | 1–3 |
| Gambia Ports Authority | 1–0 | Séwé Sport | 1–0 | 0–0 |
| CNaPS Sport | 4–4 (a) | Township Rollers | 2–1 | 2–3 |
| Coton Sport | 7–2 | Atlabara | 2–0 | 5–2 |
| Saint-Louisienne | 3–4 | Bidvest Wits | 2–1 | 1–3 |
| Lioli | 1–2 | CAPS United | 0–0 | 1–2 |
| Côte d'Or | 0–5 | Saint George | 0–2 | 0–3 |
| AC Léopards | 2–2 (a) | UMS de Loum | 1–0 | 1–2 |
| Tusker | 2–3 | AS Port-Louis 2000 | 1–1 | 1–2 |

### First round

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.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| USM Alger | 2–1 | Rail Club du Kadiogo | 2–0 | 0–1 |
| Rivers United | 3–4 | Al-Merrikh | 3–0 | 0–4 |
| Étoile du Sahel | 5–1 | AS Tanda | 3–0 | 2–1 |
| Espérance de Tunis | 4–3 | Horoya | 3–1 | 1–2 |
| Al-Ahli Tripoli | 3–3 (a) | FUS Rabat | 2–0 | 1–3 |
| Mamelodi Sundowns | 3–2 | KCCA | 2–1 | 1–1 |
| Wydad AC | 1–1 (5–4 p) | CF Mounana | 1–0 | 0–1 |
| Young Africans | 1–1 (a) | Zanaco | 1–1 | 0–0 |
| Ferroviário Beira | 2–2 (4–1 p) | Barrack Young Controllers | 2–0 | 0–2 |
| Zamalek | 5–3 | Enugu Rangers | 4–1 | 1–2 |
| Gambia Ports Authority | 1–3 | AS Vita Club | 1–1 | 0–2 |
| Coton Sport | 2–1 | CNaPS Sport | 1–0 | 1–1 |
| Al Ahly | 1–0 | Bidvest Wits | 1–0 | 0–0 |
| TP Mazembe | 1–1 (a) | CAPS United | 1–1 | 0–0 |
| AC Léopards | 0–3 | Saint George | 0–1 | 0–2 |
| Al-Hilal | 5–2 | AS Port-Louis 2000 | 3–0 | 2–2 |

## Group stage

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 | ESS | CFB | MER | HIL |
| 1 | Étoile du Sahel | 6 | 3 | 3 | 0 | 13 | 4 | +9 | 12 | Quarter-finals | — | 5–0 | 3–0 (awd.) | 1–1 |
| 2 | Ferroviário Beira | 6 | 2 | 2 | 2 | 6 | 8 | −2 | 8 | Quarter-finals | 1–1 | — | 1–0 | 0–0 |
| 3 | Al-Merrikh | 6 | 2 | 1 | 3 | 6 | 9 | −3 | 7 | | 1–2 | 2–1 | — | 2–1 |
| 4 | Al-Hilal | 6 | 0 | 4 | 2 | 4 | 8 | −4 | 4 | | 1–1 | 0–3 (awd.) | 1–1 | — |
* 1 2 FIFA suspended the Sudan Football Association on 7 July 2017. As a result, both Al-Hilal and Al-Merrikh could not play their final group matches against Ferroviário Beira and Étoile du Sahel respectively, and the matches were awarded as 3–0 wins to their opponents.

### Group B

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | USM | AHT | ZAM | CAP |
| 1 | USM Alger | 6 | 3 | 2 | 1 | 12 | 5 | +7 | 11 | Quarter-finals | — | 3–0 | 2–0 | 4–1 |
| 2 | Al-Ahli Tripoli | 6 | 2 | 3 | 1 | 11 | 10 | +1 | 9 | Quarter-finals | 1–1 | — | 0–0 | 4–2 |
| 3 | Zamalek | 6 | 1 | 3 | 2 | 6 | 8 | −2 | 6 | | 1–1 | 2–2 | — | 2–0 |
| 4 | CAPS United | 6 | 2 | 0 | 4 | 10 | 16 | −6 | 6 | | 2–1 | 2–4 | 3–1 | — |
* 1 2 Head-to-head results: Zamalek 2–0 CAPS United, CAPS United 3–1 Zamalek (Zamalek won on away goals).

### Group C

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | EST | MSD | STG | VIT |
| 1 | Espérance de Tunis | 6 | 3 | 3 | 0 | 11 | 4 | +7 | 12 | Quarter-finals | — | 0–0 | 4–0 | 3–1 |
| 2 | Mamelodi Sundowns | 6 | 2 | 3 | 1 | 6 | 4 | +2 | 9 | Quarter-finals | 1–2 | — | 0–0 | 1–1 |
| 3 | Saint George | 6 | 1 | 2 | 3 | 2 | 7 | −5 | 5 | | 0–0 | 0–1 | — | 1–0 |
| 4 | AS Vita Club | 6 | 1 | 2 | 3 | 7 | 11 | −4 | 5 | | 2–2 | 1–3 | 2–1 | — |
* 1 2 Head-to-head results: Saint George 1–0 AS Vita Club, AS Vita Club 2–1 Saint George (Saint George won on away goals).

### Group D

| Pos | Teamvte | Pld | W | D | L | GF | GA | GD | Pts | Qualification | WAC | AHL | ZAN | COT |
| 1 | Wydad AC | 6 | 4 | 0 | 2 | 7 | 3 | +4 | 12 | Quarter-finals | — | 2–0 | 1–0 | 2–0 |
| 2 | Al Ahly | 6 | 3 | 2 | 1 | 7 | 3 | +4 | 11 | Quarter-finals | 2–0 | — | 0–0 | 3–1 |
| 3 | Zanaco | 6 | 3 | 2 | 1 | 4 | 2 | +2 | 11 | | 1–0 | 0–0 | — | 2–1 |
| 4 | Coton Sport | 6 | 0 | 0 | 6 | 2 | 12 | −10 | 0 | | 0–2 | 0–2 | 0–1 | — |
* 1 2 Head-to-head results: Al-Ahly 0–0 Zanaco, Zanaco 0–0 Al-Ahly (tied on head-to-head results, ranked on total goal difference).

## Knockout stage

In the knockout stage, the eight teams played a single-elimination tournament. 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. 26 & 27).

### Bracket

| Quarter-finals | Quarter-finals | Quarter-finals | Quarter-finals | Semi-finals | Semi-finals | Semi-finals | Semi-finals | Final | Final | Final | Final |
| Al Ahli Tripoli | 0 | 0 | 0 | | | | | | | | |
| Étoile du Sahel | 0 | 2 | 2 | | | | | | | | |
| Étoile du Sahel | 0 | 2 | 2 | Étoile du Sahel | 2 | 2 | 4 | | | | |
| | | | | Al Ahly | 1 | 6 | 7 | | | | |
| Al Ahly | 2 | 2 | 4 | Al Ahly | 1 | 6 | 7 | | | | |
| Espérance de Tunis | 2 | 1 | 3 | | | | | | | | |
| Espérance de Tunis | 2 | 1 | 3 | | | | | Al Ahly | 1 | 0 | 1 |
| | | | | | | | | Wydad AC | 1 | 1 | 2 |
| Ferroviário Beira | 1 | 0 | 1 (a) | | | | | | | | | Wydad AC | 1 | 1 | 2 |
| USM Alger | 1 | 0 | 1 (a) | | | | | | | | |
| USM Alger | 1 | 0 | 1 (a) | USM Alger | 0 | 1 | 1 | | | | |
| | | | | Wydad AC | 0 | 3 | 3 | | | | |
| Mamelodi Sundowns | 1 | 0 | 1 (2) | Wydad AC | 0 | 3 | 3 | | | | |
| Wydad AC | 0 | 1 | 1 (3) | | | | | | | | |

### Quarter-finals

In the quarter-finals, the winners of one group played the runners-up of another group, with the group winners hosting the second leg.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Al Ahli Tripoli | 0–2 | Étoile du Sahel | 0–0 | 0–2 |
| Al Ahly | 4–3 | Espérance de Tunis | 2–2 | 2–1 |
| Ferroviário Beira | 1–1 (a) | USM Alger | 1–1 | 0–0 |
| Mamelodi Sundowns | 1–1 (2–3 p) | Wydad AC | 1–0 | 0–1 |

### Semi-finals

In the semi-finals, the four quarter-final winners played in two ties, with the order of legs decided by an additional draw held after the group stage draw.
| Team 1 | Agg.Tooltip Aggregate score | Team 2 | 1st leg | 2nd leg |
| Étoile du Sahel | 4–7 | Al Ahly | 2–1 | 2–6 |
| USM Alger | 1–3 | Wydad AC | 0–0 | 1–3 |

### Final

In the final, the two semi-final winners played each other, with the order of legs decided by an additional draw held after the group stage draw.
Wydad Casablanca won 2–1 on aggregate.

## Top goalscorers

| Rank | Player | Team | MD1 | MD2 | MD3 | MD4 | MD5 | MD6 | QF1 | QF2 | SF2 | F1 | F2 | Total |
| 1 | Taha Yassine Khenissi | ES Tunis | 1 | | 2 | | 2 | | 1 | 1 | | | | 7 |
| 2 | Achraf Bencharki | Wydad AC | | | | | 1 | 1 | | | 2 | 1 | | 5 |
| 3 | Walid Azaro | Al Ahly | | | | | | | 1 | | 3 | | | 4 |
| 3 | Oussama Darfalou | USM Alger | 1 | | | | | 2 | 1 | | | | | | 4 |
| 3 | Tady Etekiama | AS Vita Club | | | | 2 | 2 | | | | | | | | | | 4 |
| 6 | Diogo Acosta | Étoile du Sahel | 2 | 1 | | | | | | | | | | 3 |
| 6 | Junior Ajayi | Al Ahly | | 1 | 1 | | | | | 1 | | | | 3 |
| 6 | Brian Amidu | CAPS United | | | | | 2 | 1 | | | | | | | | | 3 |
| 6 | Farouk Chafaï | USM Alger | 1 | | 1 | | 1 | | | | | | | | | 3 |
| 6 | Ronald Chitiyo | CAPS United | | 2 | | 1 | | | | | | | | | | | 3 |
| 6 | Walid El Karti | Wydad AC | | | | 1 | | | | | 1 | | 1 | 3 |
| 6 | Ronald Pfumbidzai | CAPS United | | | 1 | 1 | 1 | | | | | | | | | | 3 |
| 6 | Moamen Zakaria | Al Ahly | | 1 | 1 | | | | | | | 1 | | 3 |

## Prize money

In 2017, the fixed amount of prize money paid to the clubs is as follows:
| Final position | Money awarded to club | National Association share 5% |
| Winner | US$2,500,000 | US$125,000 |
| Runners-up | US$1,250,000 | US$62,500 |
| Semi-finalists | US$800,000 | US$40,000 |
| Quarter-finalists | US$650,000 | US$32,500 |
| 3rd in group stage | US$550,000 | US$27,500 |
| 4th in group stage | US$550,000 | US$27,500 |