The Africa Cup of Nations Final had everything — the good and the bad — as there were heroes and villains through 120 minutes of play in Rabat.
MORE — Senegal v Morocco as it happened, recap
The hosts couldn’t find a way to win, however, despite the controversial awarding of a stoppage-time penalty.
Along the way we saw a missed panenka penalty, one team leaving the field in protests, scraps in the stands, and one fantastic goal to make Senegal the winners of AFCON 2025.
Senegal player ratings vs Morocco at AFCON Final
Edouard Mendy: 7 — Two saves and the saved penalty. He was also very good with the ball and connected on 7-of-12 long passes. But what could’ve been a near-perfect rating is docked a few points for his clownish actions after Morocco were awarded the penalty and his play-acting after two perceived fouls in extra time.
Malick Diouf: 6.5 — The conceded penalty was iffy but he could’ve won the header without a shoulder pull on Diaz. Only Mazraoui registered more defensive contributions in the game than Diouf’s 11.
Moussa Niakhate: 7.5 — No one touched the ball more than the back, who neared 100 touches before anyone on Morocco hit 80.
Mamadou Sarr: 8 — The 20-year-old looked well beyond his age, calm on the ball and unrattled in front of a fantastic crowd.
Antoine Mendy: 6.5 — The surprise starter thanks to an ailing teammate, Mendy did just fine.
Lamine Camara: 6.5 — Perfectly adequate over his 77 minutes.
Pape Gueye: 8.5 — Put three of his four shot attempts on target and his body control on the extra time goal was enough for a medal.
Idrissa Gana Gueye: 7.5 — A savvy 120 minutes plus an assist on the Gueye-to-Gueye deciding goal.
Sadio Mane: 8 — All over the pitch, as the winger piled up more recoveries than any field player (6) while playing a key part in the extra-time opener. Mane was involved in 25 duels. Twenty-five. He won 12, committed three fouls, and was fouled four times. Everywhere.
Iliman Ndiaye: 6.5 — Tidy and dangerous enough, it seemed odd when he was taken off the pitch. His teenage replacement showed us why, though.
Nicolas Jackson: 6.5 — Showed some danger as a player but was one of those to lose his cool and class after the VAR-awarded penalty.
Subs
Abdoulaye Seck (On for Mendy 77'): 6.5
Ismaila Sarr (On for Camara 77'): 6.5
Ibrahima Mbaye (On for I. Ndiaye 77'): 6.5
Cherif Ndiaye (On for Jackson 90+3'): 5.5 — Should’ve salted it away in 2ET
Ismail Jakobs (On for Diouf 106'): N/A
Morocco player ratings vs Senegal at AFCON Final
Yassine Bounou: 8 — It took a rocket to finally defy one of the best goalkeepers in continental history. No shame on his name as he leaves with the tournament’s Golden Glove.
Achraf Hakimi: 7.5 — Created three chances and drew numerous fouls but will always remember the front-row seat to Pape Gueye’s banger. Named Player of the Tournament.
Nayef Aguerd: 6 — Wasn’t a problem, but certainly not at hsi best either.
Adam Masina: 6.5 — Solid before leaving with a second-half injury.
Noussair Mazraoui: 8.5 — It’s a shame his day had to end early, but his 12 defensive contributions included the game-highs in tackles (3), interceptions (2), and blocks (2) when he left the game.
Neil El Aynaoui: 5 — At the center of everything, including a giveaway that led to Gueye’s goal.
Ismael Saibari: 6 — Registered three shots over 90 minutes.
Abdessamad Ezzalzouli: 7 — Was their danger man but blazed a late chance over the bar.
Bilal El Khannouss: 7.5 — Deserved an assist but saw his pass turned wide by El Kaabi. So tidy, so clever.
Brahim Diaz: 4.5 — The “me, me, me” audacity of trying a panenka penalty on the last kick of a final in stoppage time in its own right is awful. Best case scenario is a goal. Worst case scenario is you’re a laughingstock. Tournament-leading scorer to goat in one doofy dink.
Ayoub El Kaabi: 5.5 — Three shots on 16 touches in 80 minutes, but really should’ve scored the third one.
Subs
Oussama Targhalline (On for El Khannouss 80'): —6.5
Youssef En-Nesyri (On for El Kaabi 80'): 6 — Why did he defer to Brahim Diaz?
Jawad El Yamiq (On for Masina 89'): 6.5
Ilias Akhomach (On for Diaz 98'): N/A
Hamza Igamane (On for Mazraoui 98'): N/A