# 2019–20 CAF Champions League group stage

The 2019–20 CAF Champions League group stage started on 29 November 2019 and ended on 1 February 2020. A total of 16 teams competed in the group stage to decide the eight places in the knockout stage of the 2019–20 CAF Champions League.

## Draw

The draw for the group stage was held on 9 October 2019, 20:00 CAT (UTC+2), at the Hilton Pyramids Golf in Cairo, Egypt. The 16 teams, all 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 | Espérance de Tunis (63.5 pts) TP Mazembe (63 pts) Wydad AC (63 pts) Al-Ahly (57 pts) | Étoile du Sahel (50 pts) Mamelodi Sundowns (49 pts) Zamalek (44 pts) Raja Casablanca (25 pts) | USM Alger (25 pts) ZESCO United (24.5 pts) AS Vita Club (24 pts) Al-Hilal (19 pts) | 1º de Agosto (16 pts) FC Platinum (5 pts) Petro de Luanda (2.5 pts) JS Kabylie |

## Format

In each group, teams play against each other home-and-away in a round-robin format. The group winners and runners-up advance to the quarter-finals of the knockout stage.

### Tiebreakers

Teams are ranked according to points (3 points for a win, 1 point for a draw, 0 points for a loss). If tied on points, tiebreakers are 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.

## Schedule

The schedule of each matchday is as follows. Effective from the Champions League group stage, matches are played on Fridays and Saturdays. Kick-off times are fixed at 13:00 (Saturdays only), 16:00 and 19:00 GMT.
Note: Positions for scheduling do not use the seeding pots, e.g. Team 1 is not necessarily the team from Pot 1 in the draw.
| Matchday | Dates | Dates | Matches |
| Matchday | Original dates | Revised dates | Matches |
| Matchday 1 | 29–30 November 2019 | 29–30 November 2019 | Team 1 vs. Team 4, Team 2 vs. Team 3 |
| Matchday 2 | 6–7 December 2019 | 6–7 December 2019 | Team 3 vs. Team 1, Team 4 vs. Team 2 |
| Matchday 3 | 27–28 December 2019 | 27–28 December 2019 | Team 4 vs. Team 3, Team 1 vs. Team 2 |
| Matchday 4 | 14–15 February 2020 | 10–11 January 2020 | Team 3 vs. Team 4, Team 2 vs. Team 1 |
| Matchday 5 | 21–22 February 2020 | 24–25 January 2020 | Team 4 vs. Team 1, Team 3 vs. Team 2 |
| Matchday 6 | 6–7 March 2020 | 31 January – 1 February 2020 | Team 1 vs. Team 3, Team 2 vs. Team 4 |

## Groups

Times are GMT as listed by CAF (local times, even if not different, are in parentheses).

### Group A

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | TPM | ZAM | AGO | ZES |
| 1 | TP Mazembe | 6 | 4 | 2 | 0 | 11 | 4 | +7 | 14 | Advance to knockout stage | — | 3–0 | 2–1 | 3–1 |
| 2 | Zamalek | 6 | 2 | 3 | 1 | 5 | 4 | +1 | 9 | Advance to knockout stage | 0–0 | — | 2–0 | 2–0 |
| 3 | 1º de Agosto | 6 | 0 | 4 | 2 | 4 | 7 | −3 | 4 | | 1–1 | 0–0 | — | 1–1 |
| 4 | ZESCO United | 6 | 0 | 3 | 3 | 5 | 10 | −5 | 3 | | 1–2 | 1–1 | 1–1 | — |

### Group B

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | ESS | AHL | HIL | PLA |
| 1 | Étoile du Sahel | 6 | 4 | 0 | 2 | 8 | 3 | +5 | 12 | Advance to knockout stage | — | 1–0 | 0–1 | 2–0 |
| 2 | Al-Ahly | 6 | 3 | 2 | 1 | 7 | 4 | +3 | 11 | Advance to knockout stage | 1–0 | — | 2–1 | 2–0 |
| 3 | Al-Hilal | 6 | 3 | 1 | 2 | 7 | 6 | +1 | 10 | | 1–2 | 1–1 | — | 2–1 |
| 4 | FC Platinum | 6 | 0 | 1 | 5 | 2 | 11 | −9 | 1 | | 0–3 | 1–1 | 0–1 | — |

### Group C

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | MSD | WAC | PET | USM |
| 1 | Mamelodi Sundowns | 6 | 4 | 2 | 0 | 9 | 3 | +6 | 14 | Advance to knockout stage | — | 1–0 | 3–0 | 2–1 |
| 2 | Wydad AC | 6 | 2 | 3 | 1 | 10 | 6 | +4 | 9 | Advance to knockout stage | 0–0 | — | 4–1 | 3–1 |
| 3 | Petro de Luanda | 6 | 0 | 4 | 2 | 8 | 14 | −6 | 4 | | 2–2 | 2–2 | — | 1–1 |
| 4 | USM Alger | 6 | 0 | 3 | 3 | 6 | 10 | −4 | 3 | | 0–1 | 1–1 | 2–2 | — |

### Group D

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts | Qualification | EST | RCA | JSK | VIT |
| 1 | Espérance de Tunis | 6 | 3 | 2 | 1 | 7 | 3 | +4 | 11 | Advance to knockout stage | — | 2–2 | 1–0 | 0–0 |
| 2 | Raja Casablanca | 6 | 3 | 2 | 1 | 6 | 4 | +2 | 11 | Advance to knockout stage | 0–2 | — | 2–0 | 1–0 |
| 3 | JS Kabylie | 6 | 2 | 1 | 3 | 3 | 7 | −4 | 7 | | 1–0 | 0–0 | — | 1–0 |
| 4 | AS Vita Club | 6 | 1 | 1 | 4 | 4 | 6 | −2 | 4 | | 0–2 | 0–1 | 4–1 | — |
* 1 2 Head-to-head points: Espérance de Tunis 4, Raja Casablanca 1.