# 2021 CAF Confederation Cup final

The 2021 CAF Confederation Cup Final was the final match of the 2020–21 CAF Confederation Cup, the 18th season of Africa's premier club football tournament organised by CAF under the CAF Confederation Cup title after the merger of CAF Cup and African Cup Winners' Cup. It was played at the Stade de l'Amitié in Cotonou, Benin on 10 July 2021.
Raja CA defeated JS Kabylie 2–1 to secure their second ever CAF Confederation Cup title. They also earned the right to play against Al Ahly S.C the CAF Champions league winner in the 2021–22 CAF Super Cup.

## Teams

| Team | Zone | Previous finals appearances (bold indicates winners) |
| Raja CA | UNAF (North Africa) | 1 (2018) |
| JS Kabylie | UNAF (North Africa) | None |

## Venue

For the second consecutive year, the final was played as a single match at a pre-selected venue by CAF instead of a two-legged fixtures format, which was being used in the competition since 1966.
On 16 May 2021, Stade de l'Amitié in Cotonou, Benin was chosen by a CAF Executive Committee to host the final during a meeting in Kigali, Rwanda.

## Road to the final

Note: In all results below, the score of the finalist is given first (H: home; A: away).
| Raja CA | Raja CA | Raja CA | Raja CA | Round | JS Kabylie | JS Kabylie | JS Kabylie | JS Kabylie |
| Champions League | Champions League | Champions League | Champions League | | Confederation Cup | Confederation Cup | Confederation Cup | Confederation Cup |
| Opponent | Agg. | 1st leg | 2nd leg | Qualifying rounds (CL, CC) | Opponent | Agg. | 1st leg | 2nd leg |
| Teungueth | 0–0 (1–3 p) | 0–0 (A) | 0–0 (H) | First round | USGN | 4–1 | 2–1 (A) | 2–0 (H) |
| Confederation Cup | Confederation Cup | Confederation Cup | Confederation Cup | |
| US Monastir | 1–1 (6–5 p) | 1–0 (H) | 0–1 (A) | Play-off round | Stade Malien | 2–2 (a) | 1–2 (A) | 1–0 (H) |
| Opponent | Result | Result | Result | Group stage | Opponent | Result | Result | Result |
| Namungo | 1–0 (H) | 1–0 (H) | 1–0 (H) | Matchday 1 | Coton Sport | 1–0 (H) | 1–0 (H) | 1–0 (H) |
| Nkana | 2–0 (A) | 2–0 (A) | 2–0 (A) | Matchday 2 | NAPSA Stars | 2–2 (A) | 2–2 (A) | 2–2 (A) |
| Pyramids | 2–0 (H) | 2–0 (H) | 2–0 (H) | Matchday 3 | RS Berkane | 0–0 (A) | 0–0 (A) | 0–0 (A) |
| Pyramids | 3–0 (A) | 3–0 (A) | 3–0 (A) | Matchday 4 | RS Berkane | 0–0 (H) | 0–0 (H) | 0–0 (H) |
| Namungo | 3–0 (A) | 3–0 (A) | 3–0 (A) | Matchday 5 | Coton Sport | 2–1 (A) | 2–1 (A) | 2–1 (A) |
| Nkana | 2–0 (H) | 2–0 (H) | 2–0 (H) | Matchday 6 | NAPSA Stars | 2–1 (H) | 2–1 (H) | 2–1 (H) |
| Group D winners Pos Teamvte Pld Pts 1 Raja Casablanca 6 18 2 Pyramids 6 12 3 Nkana 6 6 4 Namungo 6 0 Source: Soccerway | Group D winners Pos Teamvte Pld Pts 1 Raja Casablanca 6 18 2 Pyramids 6 12 3 Nkana 6 6 4 Namungo 6 0 Source: Soccerway | Group D winners Pos Teamvte Pld Pts 1 Raja Casablanca 6 18 2 Pyramids 6 12 3 Nkana 6 6 4 Namungo 6 0 Source: Soccerway | Group D winners Pos Teamvte Pld Pts 1 Raja Casablanca 6 18 2 Pyramids 6 12 3 Nkana 6 6 4 Namungo 6 0 Source: Soccerway | Final standings | Group B winners Pos Teamvte Pld Pts 1 JS Kabylie 6 12 2 Coton Sport 6 9 3 RS Berkane 6 8 4 NAPSA Stars 6 4 Source: Soccerway | Group B winners Pos Teamvte Pld Pts 1 JS Kabylie 6 12 2 Coton Sport 6 9 3 RS Berkane 6 8 4 NAPSA Stars 6 4 Source: Soccerway | Group B winners Pos Teamvte Pld Pts 1 JS Kabylie 6 12 2 Coton Sport 6 9 3 RS Berkane 6 8 4 NAPSA Stars 6 4 Source: Soccerway | Group B winners Pos Teamvte Pld Pts 1 JS Kabylie 6 12 2 Coton Sport 6 9 3 RS Berkane 6 8 4 NAPSA Stars 6 4 Source: Soccerway |
| Opponent | Agg. | 1st leg | 2nd leg | Knockout stage | Opponent | Agg. | 1st leg | 2nd leg |
| Orlando Pirates | 5–1 | 1–1 (A) | 4–0 (H) | Quarter-finals | CS Sfaxien | 2–1 | 1–0 (A) | 1–1 (H) |
| Pyramids | 0–0 (5–4 p) | 0–0 (A) | 0–0 (H) | Semi-finals | Coton Sport | 5–1 | 2–1 (A) | 3–0 (H) |

## Format

The final was played as a single match at a pre-selected venue, with the winner of semi-final 1 according to the knockout stage draw designated as the "home" team for administrative purposes. If scores were level after full time, extra time would not to be played and the winner would be decided by a penalty shoot-out (Regulations Article III. 28).

## Match

| Raja CA | JS Kabylie |
| GK | 1 | Anas Zniti (c) |
| CB | 24 | Marouane Hadhoudi |
| CB | 15 | Ilias Haddad |
| RB | 29 | Abdelilah Madkour | 90+4' |
| LB | 27 | Oussama Soukhane |
| CM | 16 | Omar Arjoune | 63' |
| CM | 17 | Zakaria El Wardi |
| RW | 10 | Mahmoud Benhalib | | 58' |
| AM | 18 | Abdelilah Hafidi | | 71' |
| LW | 21 | Soufiane Rahimi | | 90+1' |
| CF | 28 | Ben Malango | | 90+1' |
| Substitutes: ||
| GK | 22 | Mohamed Bouamira |
| DF | 3 | Mohamed Souboul |
| DF | 20 | Abdeljalil Jbira |
| MF | 6 | Fabrice Ngoma | | 71' |
| MF | 19 | Mohamed Zrida | | 58' |
| MF | 23 | Mohamed Al Makaazi | | 90+1' |
| MF | 26 | Riad Idbouiguiguine |
| FW | 14 | Zakaria Habti |
| FW | 30 | Ayoub Nanah | | 90+1' |
| Manager: ||
| Lassaad Chabbi ||
| GK | 25 | Oussama Benbot |
| CB | 31 | Ahmed Kerroum | 84' |
| CB | 2 | Ahmed Ait Abdessalem |
| CB | 5 | Badreddine Souyad |
| RM | 22 | Walid Bencherifa |
| CM | 13 | Aziz Benabdi |
| CM | 8 | Juba Oukaci | | 69' |
| LM | 21 | Malik Raiah | | 46' |
| AM | 7 | Mohamed Benchaira |
| CF | 17 | Rédha Bensayah (c) | 34' | 76' |
| CF | 9 | Zaka | | 76' |
| Substitutes: ||
| GK | 1 | Mohamed Idir Hadid |
| DF | 3 | Abdelmoumen Chikhi |
| DF | 4 | Bilal Tizi Bouali |
| DF | 37 | Fares Djabri |
| MF | 6 | Ammar El Orfi |
| MF | 14 | Abdussalam Tubal | | 76' |
| MF | 38 | Kouceila Boualia | | 69' |
| FW | 11 | Rezki Hamroune | | 46' |
| FW | 34 | Massinissa Nezla | | 76' |
| Manager: ||
| Denis Lavagne ||
| Man of the Match: Soufiane Rahimi (Raja CA) Assistant referees: Zakhele Siwela (South Africa) Souru Phatsoane (Lesotho) Fourth official: Jean-Jacques Ndala Ngambo (DR Congo) Video assistant referee: Janny Sikazwe (Zambia) Assistant video assistant referees: Gerson Emiliano dos Santos (Angola) Pacifique Ndabihawenimana (Burundi) | Match rules 90 minutes. Penalty shoot-out if scores level. Nine named substitutes, of which up to five may be used. |