2023 African Football League final

{{short description|African football tournament final}}

{{Infobox football match

|title = 2023 African Football League final

|image = 2023 AFL final (cover).jpg

|caption = Match programme cover

|event = {{nowrap|2023 African Football League}}

|team1 = Wydad AC

|team1association = {{flagicon|MAR|size=30px}}

|team1score = 2

|team2 = Mamelodi Sundowns

|team2association = {{flagicon|RSA|size=30px}}

|team2score = 3

|firstleg = First leg

|team1score1 = 2

|team2score1 = 1

|details1 =

|date1 = {{Start date|2023|11|5|df=y}}{{cite news|url=https://www.cafonline.com/news/the-inaugural-african-football-league-afl-kicks-off-in-october-2023-and-will-be-preceded-by-official-draw-on-saturday-2-september-2023/ |title=The inaugural African Football League (AFL) kicks off in October 2023 and will be preceded by official draw on Saturday 2 September 2023 |language=en |website=Confederation of African Football |date=29 August 2023}}

|stadium1 = Stade Mohammed V

|city1 = Casablanca

|referee1 = Mahmood Ismail (Sudan)

|attendance1 = 45,000

|weather1 = Mostly cloudy
{{convert|18|°C|°F}}
84% humidity

|secondleg = Second leg

|team1score2 = 0

|team2score2 = 2

|details2 =

|date2 = {{Start date|2023|11|12|df=y}}

|stadium2 = Loftus Versfeld Stadium

|city2 = Pretoria

|referee2 = Jean-Jacques Ndala Ngambo (DR Congo)

|attendance2 = 50,000

|weather2 = Partially covered
{{convert|34|°C|°F}}
22% humidity

|next = 2025

}}

The 2023 African Football League final were the final matches of the 2023 African Football League, the 1st edition of Africa's newest club football tournament, the African Football League, organized by the Confederation of African Football (CAF).

Venues

File:Stade Mohamed V, Casablanca.jpg in Casablanca, Morocco, hosted the first leg.]]

|File:Loftus Versfeld Game Night.JPG in Pretoria, South Africa, hosted the second leg.]]

Road to the final

{{details|2023 African Football League}}

Note: In all results below, the score of the finalist is given first (H: home; A: away).

class="wikitable" style="text-align:center"
colspan="4"|{{fbaicon|MAR}} Wydad AC

!Round

!colspan="4"|{{fbaicon|RSA}} Mamelodi Sundowns

style="background:#C1E0FF"

|Opponent

|Agg.

|1st leg

|2nd leg

|

|Opponent

|Agg.

|1st leg

|2nd leg

style="text-align:left"|{{fbaicon|NGA}} Enyimba

|4–0

|1–0 (A)

|3–0 (H)

|style="background:#C1E0FF"|Quarter-finals

|style="text-align:left"|{{fbaicon|ANG}} Petro de Luanda

|2–0

|2–0 (A)

|0–0 (H)

style="text-align:left"|{{fbaicon|TUN}} Espérance de Tunis

|1–1 {{pso|5–4}}

|1–0 (H)

|0–1 (A)

|style="background:#C1E0FF"|Semi-finals

|style="text-align:left"|{{fbaicon|EGY}} Al Ahly

|1–0

|1–0 (H)

|0–0 (A)

Format

The final 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 played, and a penalty shoot-out was used to determine the winner.

Matches

=First leg=

==Details==

{{Football box

|id = Wydad AC v Mamelodi Sundowns

|date = {{Start date|2023|11|5|df=y}}

|time = {{UTZ|19:00|1}}

|team1 = Wydad AC {{fbaicon|MAR}}

|score = 2–1

|team2 = {{fbaicon|RSA}} Mamelodi Sundowns

|goals1 =

|goals2 =

|stadium = Stade Mohammed V, Casablanca

|attendance = 45,000

|referee = Mahmood Ismail (Sudan)

|report = https://afl.africa/match/?competition=1235&season=2023&match=2412953

}}

width=92%
{{Football kit

|pattern_la = _macronthemiseco23wr

|pattern_b = _macronthemiseco23wr

|pattern_ra = _macronthemiseco23wr

|pattern_sh = _macronskara2223wr

|pattern_so =

|leftarm = _macronthemiseco23wr

|body = FFFFFF

|rightarm = _macronthemiseco23wr

|shorts = FFFFFF

|socks = FFFFFF

|title = Wydad AC

}}

|{{Football kit

|pattern_la = _mamelodi2021h

|pattern_b = _mamelodi2021h

|pattern_ra = _mamelodi2021h

|pattern_sh =

|pattern_so = _mamelodi2021A

|leftarm = FFDF00

|body = 12408a

|rightarm = FFDF00

|shorts = 0000FF

|socks = 0033FF

|title = Mamelodi Sundowns

}}

width="100%"

|valign="top" width="40%"|

{| style="font-size:90%" cellspacing="0" cellpadding="0"

width=25|width=25|
GK32{{flagicon|MAR}} Youssef El Motie
RB22{{flagicon|MAR}} Ayoub El Amloud{{yel|47}}
CB4{{flagicon|MAR}} Amine Aboulfath
CB16{{flagicon|MAR}} Jamal Harkass
LB14{{flagicon|MAR}} Yahia Attiyat Allah
RM19{{flagicon|MAR}} Montasser Lahtimi{{suboff|45+13}}
CM5{{flagicon|MAR}} Yahya Jabrane (c){{yel|73}}
CM17{{flagicon|ALG}} Zakaria Draoui
LM23{{flagicon|MAR}} Hicham Boussefiane{{suboff|66}}
AM13{{flagicon|MAR}} Abdellah Haimoud{{suboff|65}}
CF21{{flagicon|MAR}} Charki El Bahri{{suboff|78}}
colspan=3|Substitutes:
GK1{{flagicon|MAR}} Mehdi Maftah
GK40{{flagicon|FRA}} Boubacar Bah
DF2{{flagicon|MAR}} Oussama Mahrous
DF15{{flagicon|MAR}} Hamza Regragui
DF20{{flagicon|ALG}} Ilyes Chetti
DF25{{flagicon|MAR}} Amine Farhane
MF3{{flagicon|MAR}} Anas Serrhat{{subon|65}}
MF24{{flagicon|NED}} Soufyan Ahannach
FW10{{flagicon|LBY}} Hamdou Elhouni{{subon|45+13}}
FW11{{flagicon|MAR}} Mohamed Ounajem{{subon|66}}
FW27{{flagicon|SEN}} Bouly Sambou{{subon|78}}
FW30{{flagicon|MAR}} Saifeddine Bouhra
colspan=3|Manager:
colspan=3|{{flagicon|MAR}} Adil Ramzi

|valign="top"|

|valign="top" width="50%"|

style="font-size:90%; margin:auto" cellspacing="0" cellpadding="0"
width=25|width=25|
GK30{{flagicon|RSA}} Ronwen Williams
RB25{{flagicon|RSA}} Khuliso Mudau
CB40{{flagicon|RSA}} Rivaldo Coetzee
CB20{{flagicon|RSA}} Grant Kekana{{suboff|45}}
LB13{{flagicon|MAR}} Abdelmounaim Boutouil
RM11{{flagicon|CHI}} Marcelo Allende
DM4{{flagicon|RSA}} Teboho Mokoena
LM17{{flagicon|RSA}} Aubrey Modiba{{suboff|68}}
RW33{{flagicon|RSA}} Thapelo Maseko{{suboff|45}}
CF18{{flagicon|RSA}} Themba Zwane (c){{suboff|81}}
LW7{{flagicon|RSA}} Lesiba William Nku{{suboff|68}}
colspan=3|Substitutes:
GK1{{flagicon|UGA}} Denis Onyango
DF3{{flagicon|RSA}} Rushine De Reuck
DF5{{flagicon|RSA}} Mosa Lebusa{{subon|45}}
DF6{{flagicon|KEN}} Brian Onyango
MF8{{flagicon|RSA}} Bongani Zungu{{subon|81}}
MF14{{flagicon|RSA}} Terrence Mashego
MF21{{flagicon|RSA}} Sphelele Mkhulise
MF34{{flagicon|RSA}} Mothobi Mvala
MF35{{flagicon|RSA}} Neo Maema{{subon|68}}
MF39{{flagicon|RSA}} Lebohang Maboe{{subon|45}}
FW10{{flagicon|URU}} Gastón Sirino{{subon|68}}
FW22{{flagicon|RSA}} Siyabonga Mabena
colspan=3|Manager:
colspan=3|{{flagicon|RSA}} Rhulani Mokwena

|}

style="width:100%;font-size:90%"

|

Assistant referees:


Mohammed Abdallah Ibrahim (Sudan)


Khalil Hassani (Djibouti)


Fourth official:


Samuel Uwikunda (Rwanda)


Video assistant referee:


Mustapha Ghorbal (Algeria)


Assistant video assistant referees:


Mokrane Gourari (Algeria)

|Match rules

  • 90 minutes.
  • Twelve named substitutes, of which up to five may be used.{{refn|Each team was only given three opportunities to make substitutions, excluding substitutions made at half-time.|name=African Football League final|group=note}}

==Statistics==

{{col-begin}}

{{col-3}}

class="wikitable plainrowheaders" style="text-align:center"

|+First half

scope="col" style="width:100px"|Statistic

! scope="col" style="width:70px"|Wydad AC

! scope="col" style="width:70px"|Mamelodi Sundowns

scope=row|Goals scored

|1

|0

scope=row|Total shots

|2

|1

scope=row|Shots on target

|1

|0

scope=row|Saves

|0

|0

scope=row|Ball possession

|56%

|44%

scope=row|Corner kicks

|2

|1

scope=row|Fouls committed

|9

|7

scope=row|Offsides

|2

|0

scope=row|Yellow cards

|0

|0

scope=row|Red cards

|0

|0

{{col-3}}

class="wikitable plainrowheaders" style="text-align:center"

|+Second half

scope="col" style="width:100px"|Statistic

! scope="col" style="width:70px"|Wydad AC

! scope="col" style="width:70px"|Mamelodi Sundowns

scope=row|Goals scored

|1

|1

scope=row|Total shots

|6

|6

scope=row|Shots on target

|1

|2

scope=row|Saves

|1

|0

scope=row|Ball possession

|43%

|57%

scope=row|Corner kicks

|0

|5

scope=row|Fouls committed

|7

|6

scope=row|Offsides

|1

|1

scope=row|Yellow cards

|2

|0

scope=row|Red cards

|0

|0

{{col-3}}

class="wikitable plainrowheaders" style="text-align:center"

|+Overall{{Cite web |title=1st leg team statistics |url=https://afl.africa/match/?competition=1235&season=2023&match=2412953 |website=afl.africa |publisher=African Football League}}

scope="col" style="width:100px"|Statistic

! scope="col" style="width:70px"|Wydad AC

! scope="col" style="width:70px"|Mamelodi Sundowns

scope=row|Goals scored

|2

|1

scope=row|Total shots

|8

|7

scope=row|Shots on target

|2

|2

scope=row|Saves

|1

|0

scope=row|Ball possession

|49%

|51%

scope=row|Corner kicks

|2

|6

scope=row|Fouls committed

|16

|13

scope=row|Offsides

|3

|1

scope=row|Yellow cards

|2

|0

scope=row|Red cards

|0

|0

{{col-end}}

=Second leg=

==Details==

{{Football box

|id = Mamelodi Sundowns v Wydad AC

|date = {{Start date|2023|11|12|df=y}}

|time = {{UTZ|15:00|2}}

|team1 = Mamelodi Sundowns {{fbaicon|RSA}}

|score = 2–0

|team2 = {{fbaicon|MAR}} Wydad AC

|goals1 =

|goals2 =

|stadium = Loftus Versfeld Stadium, Pretoria

|attendance = 50,000

|referee = Jean-Jacques Ndala Ngambo (DR Congo)

|report = https://afl.africa/match/?competition=1235&season=2023&match=2412954

}}

width=92%
{{Football kit

|pattern_la = _mamelodi2021h

|pattern_b = _mamelodi2021h

|pattern_ra = _mamelodi2021h

|pattern_sh =

|pattern_so = _mamelodi2021H

|leftarm = FFDF00

|body = 12408a

|rightarm = FFDF00

|shorts = 0000FF

|socks = 0033FF

|title = Mamelodi Sundowns

}}

|{{Football kit

|pattern_la = _macronthemiseco23wr

|pattern_b = _macronthemiseco23wr

|pattern_ra = _macronthemiseco23wr

|pattern_sh = _macronskara2223wr

|pattern_so =

|leftarm = _macronthemiseco23wr

|body = FFFFFF

|rightarm = _macronthemiseco23wr

|shorts = FFFFFF

|socks = FF0000

|title = Wydad AC

}}

width="100%"

|valign="top" width="40%"|

{| style="font-size:90%" cellspacing="0" cellpadding="0"

width=25|width=25|
MF4{{flagicon|RSA}} Teboho Mokoena{{yel|90+9}}
DF5{{flagicon|RSA}} Mosa Lebusa
FW7{{flagicon|RSA}} Lesiba William Nku
FW11{{flagicon|CHI}} Marcelo Allende{{suboff|90+8}}
DF13{{flagicon|MAR}} Abdelmounaim Boutouil
MF17{{flagicon|RSA}} Aubrey Modiba{{suboff|89}}
MF18{{flagicon|RSA}} Themba Zwane (c){{yel|89}}{{suboff|90}}
FW23{{flagicon|BRA}} Lucas Ribeiro Costa{{suboff|66}}
DF25{{flagicon|RSA}} Khuliso Mudau{{yel|90+9}}
GK30{{flagicon|RSA}} Ronwen Williams{{yel|86}}
MF34{{flagicon|RSA}} Mothobi Mvala
FW38{{flagicon|NAM}} Peter Shalulile{{suboff|89}}
colspan=3|Substitutes:
GK1{{flagicon|UGA}} Denis Onyango
DF3{{flagicon|RSA}} Rushine De Reuck
DF6{{flagicon|KEN}} Brian Onyango{{subon|89}}
MF8{{flagicon|RSA}} Bongani Zungu{{subon|66}}
FW10{{flagicon|URU}} Gastón Sirino
MF14{{flagicon|RSA}} Terrence Mashego{{subon|89}}
MF21{{flagicon|RSA}} Sphelele Mkhulise
FW22{{flagicon|RSA}} Siyabonga Mabena
MF24{{flagicon|RSA}} Sipho Mbule
FW33{{flagicon|RSA}} Thapelo Maseko{{yel|90+10}}{{subon|90}}
MF35{{flagicon|RSA}} Neo Maema
MF39{{flagicon|RSA}} Lebohang Maboe{{subon|90+8}}
colspan=3|Manager:
colspan=3|{{flagicon|RSA}} Rhulani Mokwena

|valign="top"|

|valign="top" width="50%"|

style="font-size:90%; margin:auto" cellspacing="0" cellpadding="0"
width=25|width=25|
MF3{{flagicon|MAR}} Anas Serrhat{{yel|45+12}}{{suboff|85}}
DF4{{flagicon|MAR}} Amine Aboulfath
MF13{{flagicon|MAR}} Abdellah Haimoud{{suboff|65}}
DF14{{flagicon|MAR}} Yahia Attiyat Allah
DF16{{flagicon|MAR}} Jamal Harkass
FW19{{flagicon|MAR}} Montasser Lahtimi{{suboff|45}}
DF22{{flagicon|MAR}} Ayoub El Amloud (c)
FM17{{flagicon|ALG}} Zakaria Draoui
FW21{{flagicon|MAR}} Charki El Bahri{{yel|38}}{{suboff|45}}
FW23{{flagicon|MAR}} Hicham Boussefiane{{suboff|65}}
GK32{{flagicon|MAR}} Youssef El Motie
colspan=3|Substitutes:
GK1{{flagicon|MAR}} Mehdi Maftah
DF2{{flagicon|MAR}} Oussama Mahrous
FW10{{flagicon|LBY}} Hamdou Elhouni{{subon|65}}
FW11{{flagicon|MAR}} Mohamed Ounajem{{subon|85}}
DF15{{flagicon|MAR}} Hamza Regragui
DF20{{flagicon|ALG}} Ilyes Chetti
MF24{{flagicon|NED}} Soufyan Ahannach{{subon|65}}
DF25{{flagicon|MAR}} Amine Farhane
FW27{{flagicon|SEN}} Bouly Sambou{{subon|45}}
FW30{{flagicon|MAR}} Saifeddine Bouhra{{subon|45}}
DF35{{flagicon|COD}} Arsène Zola
GK40{{flagicon|FRA}} Boubacar Bah
colspan=3|Manager:
colspan=3|{{flagicon|MAR}} Adil Ramzi

|}

style="width:100%;font-size:90%"

|

Assistant referees:


Elvis Guy Noupue Nguegoue (Cameroon)


Arsenio Shadrick Marongella (Mozambique)


Video assistant referee:


Peter Waweru (Kenya)


Assistant video assistant referees:


Haythem Guirat (Tunisia)

|Match rules

==Statistics==

{{col-begin}}

{{col-3}}

class="wikitable plainrowheaders" style="text-align:center"

|+First half

scope="col" style="width:100px"|Statistic

! scope="col" style="width:70px"|Mamelodi Sundowns

! scope="col" style="width:70px"|Wydad AC

scope=row|Goals scored

|1

|0

scope=row|Total shots

|4

|0

scope=row|Shots on target

|2

|0

scope=row|Saves

|0

|1

scope=row|Ball possession

|73%

|27%

scope=row|Corner kicks

|2

|0

scope=row|Fouls committed

|3

|5

scope=row|Offsides

|2

|0

scope=row|Yellow cards

|0

|2

scope=row|Red cards

|0

|0

{{col-3}}

class="wikitable plainrowheaders" style="text-align:center"

|+Second half

scope="col" style="width:100px"|Statistic

! scope="col" style="width:70px"|Mamelodi Sundowns

! scope="col" style="width:70px"|Wydad AC

scope=row|Goals scored

|1

|0

scope=row|Total shots

|4

|3

scope=row|Shots on target

|1

|1

scope=row|Saves

|1

|0

scope=row|Ball possession

|49%

|51%

scope=row|Corner kicks

|2

|1

scope=row|Fouls committed

|6

|4

scope=row|Offsides

|0

|2

scope=row|Yellow cards

|5

|0

scope=row|Red cards

|0

|0

{{col-3}}

class="wikitable plainrowheaders" style="text-align:center"

|+Overall

scope="col" style="width:100px"|Statistic

! scope="col" style="width:70px"|Mamelodi Sundowns

! scope="col" style="width:70px"|Wydad AC

scope=row|Goals scored

|2

|0

scope=row|Total shots

|8

|3

scope=row|Shots on target

|3

|1

scope=row|Saves

|1

|1

scope=row|Ball possession

|60%

|40%

scope=row|Corner kicks

|4

|1

scope=row|Fouls committed

|9

|9

scope=row|Offsides

|2

|2

scope=row|Yellow cards

|5

|2

scope=row|Red cards

|0

|0

{{col-end}}

Notes

References

{{reflist}}