Monday Dec 29, 2025. 22:46
Join AfricanFootball.com for LIVE updates from all 52 matches of the 2025 Africa Cup of Nations, as 24 teams battle for glory in Morocco from 21 December to 18 January.
Today’s matches:
18h00 – Zimbabwe 3-2 South Africa
18h00 – Angola 0-0 Egypt
21h00 – Comoros v Mali
21h00 – Zambia v Morocco
Updates:
Full-time – Zambia 0 Morocco 3 (El Kaabi 9′, 50′, Diaz 27′). A walk in the park for the Atlas Lions, who advance to the round of 16 as Group A winners with an unbeaten record. The Copper Bullets can pack their bags as they’re making an early exit from the tournament.
Full-Time: Comoros 0-0 Mali – The Eagles of Mali progress to the Round of 16, where they will take on the Group C runners-up on January 3 in Casablanca. Comoros’ Coelacanths, on the other hand, bow out of the tournament after finishing third in Group A with two points from three matches.
90+2′ – A rare chance for the Copper Bullets sees Given Kalusa line up a shot from the edge of the area that hits the side-netting.
89′ – STRAIGHT RED CARD! Mali are reduced to 10 players as Referee Allaou Mahamat dismisses Amadou Haidara, who heads for an early shower.
81′ Mwanza pulls off a double save to deny Achraf Hakimi, who pounced on a pass inside the box and drilled a shot towards the bottom left corner of the net before heading the rebound straight at the goalkeeper.
75′ – Youssef En-Nesyri gets his head on the end of a corner-kick and the ball flies just wide of the left post and it appears the defender got the last touch on the ball as the referee awards another corner.
67′ – Nayef Aguerd looks to get his name on the scoresheet as he takes a pop at goal from a free-kick, although it’s nowehere near the target.
75′ – Mali continue to dominate possession as they search for an opening in the Comoros defence which has been solid so far in the second half.
58′ – Mwanza is all that stands between Morocco and a complete rout as he produces another outstanding save to turn Ezzalzouli’s shot behind for a corner.
66′ Coach Stefano Cusin decides to introduce experienced attacker El Fardou Ben, who has netted a record16 goals for Comoros as Comoros look to change the complexion of the game and take the lead.
53′ – Goal! Zambia 0-3 Morocco. The referee is called to the pitchside monitor to review the incident and the goal stands as the defender was slow slow to come out.
50′ – El Kaabi produces an acrobatic overhead-kick to beat Mwanza, but the goal is ruled out for offside.
54′ – Kamory Doumbia gets a clever chip pass into a promising position, but one of the Comoros defenders is alert and averts the danger with a brilliant clearance. Mali are knocking.
49′ – Zambia finally show some life as Patson Daka collects a pass from Lameck Banda and shoots wide of the right post.
46′ Morocco get the ball rolling in the second half.
46′ – The second-half is underway as Mali look to make a rapid start.
Half-time – Zambia 0 Morocco 2 (El Kaabi 9′, Diaz 27′). Walid Regragui’s side are good value for their two-goal lead and the Copper Bullets will welcome the half-time whistle after being under the cosh for a large portion of the first half.
45+2′ – Diaz shows quick feet to dazzle his way past two defenders before firing off a shot that Mwanza pushes onto the crossbar. So close to a third goal for Morocco!
Half-Time: Comoros 0-0 Mali – The The Coelacanths have weathered a first-half storm, but the Eagles will be frustrated after dominating without scoring.
43′ – It’s Pandor vs Mali at the moment; The 24-year-old shot-stopper parries away a thunderous shot from Dorgeles Nene.
40′ – The lively Yves Bissouma forces keeper Pandor to make an amazing save as we approach the half-time break.
38′ – Diaz comes close to scoring his second goal of the game as the ball is sent across the box, but he is just unable to stab home.
36′ – Ounahi tries his luck from range after the ball breaks to him from a corner, but his shot flies well wide of the right post.
27′ – Pressure continues to mount on Comoros as we approach the half-hour mark.
Ball Possession; Comoros 32% & Mali 68%.
27′ – Goal! Zambia 0-2 Morocco. Diaz latches onto a diagonal pass from Ezzalzouli and lashes a first-time shot into the back of the net. It’s a special moment for the Real Madrid winger, who has scored in three consecutive games for the Atlas Lions.
23′ The Atlas Lions win back possession on the edge of the opposition box and Brahim Diaz flashes a shot across the face of goal.
18′ – Kamory Doumbia places a shot towards the bottom right corner, but a brilliant last-ditch save by Yannick Pandor denies him as Mali continue to push for the opener.
15′ – The Atlas Lions have completely dominated in the opening stages, with Zambia left to do a lot of defending.
9′ – Goal! Zambia 0-1 Morocco. The Copper Bullets are caught out by a short corner as Azzedine Ounahi dinks the ball into the box and Ayoub El Kaabi gets in between three defenders to head home past Mwanza.
9′ – Mali dominating possession so far. Dorgeles Nene nearly creates a chance, but his attempted through pass is cut off.
6′ – Willard Mwanza pulls off an outstanding save to deny Abde Ezzalzouli after he drove into the box from the left.
1′ – The match between Comoros and Mali is underway.
1′ – Zambia get proceedings underway at the Prince Moulay Abdellah Stadium.
Zambia are in danger of making an early exit from the tournament after picking up just two points from their opening two games, putting them third in Group A behind Mali, who will qualify for the knockout stages if they beat Comoros in a concurrent match.
Hosts Morocco saw their record winning streak come to an end with a 1-1 draw against Mali on December 26, but they’re defending a lengthy unbeaten run stretching back to the 2023 Africa Cup of Nations when they lost 2-0 to South Africa in the round of 16.
Zambia v Morocco starting line-ups:
Zambia: W. Mwanza, M. Banda, B. Sakala, D. Chanda, L. Musonda, K. Chongo, M. Chaiwa, D. Hamansenya, K. Kangwa, J. Liteta, P. Daka.
Morocco: Y. Bounou, N. Mazraoui, N. Aguerd, A. Masina, M. Chibi, N. El Aynaoui, A. Ounahi, B. Diaz, I. Saibari, A. Ezzalzouli, A. El Kaabi.
[20:51, 29/12/2025] Robin – BPM: Sorry for the delay. For some reason I thought the game was kicking off at 10pm.
Comoros v Mali Lineups:
Comoros: Yannick Pandor – Ahmed Soilihi, Kenan Toibibou, Akim Abdallah, Yannis Kari, Yacine Bourhane, Benjaloud Youssouf, Zaydou Youssouf, Rafiki Said, Myziane Maolida, Faiz Selemani
Mali: Djigui Diarra – Abdoulaye Diaby, Ousmane Camara, Fode Doucoure, Nathan Gassama, Mamadou Sangare, Mohamed Camara, Yves Bissouma, Kamory Doumbia, Lassine Sinayoko, Nene Dorgeles
As for the Warriors, they finish bottom of the group and keep up their unfortunate record of being eliminated in the group stage in all of their AFCON tournament appearances.
They will face the runner-up from Group F (Ivory Coast, Cameroon or Mozambique) in a round of 16 match in Rabat on Sunday 4 January.
90+8’ – Full time. Zimbabwe 2-3 South Africa. A roller-coaster match in Marrakesh, but ultimately Bafana Bafana come out on top to secure second spot in Group B.
Full-time: The 90 minutes are up in Agadir as Angola and Egypt share the spoils in a 0-0 stalemate at Stade Adrar. A point not enough for Angola as they bow out of the competition while Egypt grab top spot in Group B.
90+4’ – Ronwen Williams goes down under a challenge in the penalty area to ease the attacking pressure and eat up some time.
90’ – Six minutes of added time at Stade Adrar with the score still goalless between Angola and Egypt.
90’ – There will be seven minutes of added time.
82’ – GOAL! Zimbabwe 2-3 South Africa. Oswin Appollis scores from 12 yards out and Bafana Bafana have the lead for a third time!
81’ – Penalty to South Africa! A bizarre hand-ball from Zimbabwe’s Marvelous Nakamba and a spot kick is awarded after a VAR check.
80’ – A VAR check for a hand-ball penalty in favour of South Africa…
75’ – The game is beginning to open up at Stade Adrar with both Angola and Egypt cranking up the pressure by a couple of notches.
74’ – GOAL! Zimbabwe 2-2 South Africa. Tawanda Chirewa plays a brilliant pass to put Maswanhise in on goal – his shot is saved by the legs of Williams, but the rebound hits Aubrey Modiba and travels into the net for an own goal!
64’ – So close to another equaliser for Zimbabwe, as Tawanda Maswanhise hits a low drive from the edge of the box which rebounds off the post!
59’ – Moments after Fredy’s free-kick, Zizo unleashes a curling effort that was expertly saved by Hugo Marquez in goal.
58’ – Oswin Appollis combines with Lyle Foster before getting away a low shot, but Washington Arubi makes another good save to deny the winger.
53’ – Chance for Angola! Fredy hits the upright from a near inch perfect free-kick on the edge of the Egypt box.
50’ – GOAL! Zimbabwe 1-2 South Africa. Lyle Foster latches onto a poor back header from Divine Lunge, and bravely beats Washington Arubi to the bouncing ball to head into an empty net. Bafana Bafana back in front!
47’ – Correction: SA have brought on Bathusi Aubaas to replace Sithole.
46’ – We’re back with the second-half between Angola and Egypt.
46’ – Back underway in the second half in Marrakesh. No changes at the break from either Zimbabwe or South Africa.
45+4’ – Half time. Zimbabwe 1-1 South Africa. All square between the Warriors and Bafana Bafana at the break.
Half-time: No goals between Angola and Egypt at the break with the former carving out the most noticeable scoring opportunities at the end of the half.
45’ – There will be three minutes of added time.
42’ – Great interplay by Angola on the edge of the Egypt 18-yard-area, Chico Banza fails to direct his shot goalward as The Pharaohs hang on.
40’ – Closing in on half time. As things stand, South Africa will finish second behind Egypt, with Zimbabwe in third place ahead of Angola.
30’ – Still goalless between Angola and Egypt, however, the Black Sable Antelopes are now pushing for an opener.
29’ – A great chance for Zimbabwe to claim the lead! Jonah Fabisch whips in a great cross from the free kick and the unmarked Munashe Garananga heads over the target.
20’ – Golden opportunity for Egypt as Mostafa Mohamed misses a headed effort following an acrobatic cutback cross into the danger zone.
19’ – GOAL! Zimbabwe 1-1 South Africa. Tawanda Maswanhise scores a brilliant equaliser for the Warriors! A magical dribble from the Zimbabwe no.19, who leaves a couple of defenders for dead before firing a low shot past Ronwen Williams’s right hand!
16’ – Play stops momentarily after a clumsy challenge by Mabululu on Hossam Abdelmaguid in the middle of the pitch. The Egyptian defender shrugs off the challenge as the game restarts.
16’ – Sphephelo Sithole with a free header in the Zimbabwe box, but he puts his effort over the target. South Africa continue to boss the game in Marrakesh.
10’ – Early chance by Mozambique as Egypt look shaky in defence. Kialonda Gaspar finds himself in an inviting position after making his way up the pitch, however, the defender skies his effort at goal.
7’ – GOAL! Zimbabwe 0-1 South Africa. Bafana Bafana hit the front, as Tshepang Moremi’s shot-cross from the left of the penalty area deflects off Divine Lunga and finds the back of the net!
5’ – Slow start by Egypt while Angola hold most of the ball early on. No clear cut scoring chances created by either side as yet.
6’ – Almost an opening goal for South Africa, as Oswin Appollis drives a low shot on target, but Washington Arubi does just enough to stop the ball at his near post.
1’ – We’re off at Stade Adrar between Angola & Egypt!
1’ – Kick-off. Zimbabwe 0-0 South Africa. We are underway in Marrakesh. The Warriors wear all yellow, while Bafana Bafana are in all green.
17h45 – South Africa and Zimbabwe have clashed 19 times (including non ‘A’ level internationals) with eight wins for Bafana, six for the Warriors, and five draws (one of which was won on penalties by Zimbabwe).
The teams last met in a FIFA World Cup qualifier in Durban in October 2025 which ended in a goalless stalemate.
17h35 – Line-ups:
Zimbabwe: W. Arubi, B. Galloway, G. Takwara, M. Garananga, J. Fabisch, B. Antonio, M. Nakamba, D. Msendami, D. Lunga, P. Dube, T. Maswanhise
South Africa: R. Williams, K. Mudau, S. Ngezana, M. Mbokazi, A. Modiba, T. Mokoena, S. Sithole, O. Appollis, S. Mbule, T. Moremi, L. Foster
Angola vs Egypt: Mohamed Salah benched this evening, somewhat of a familiar feeling for the talismanic forward, given his game time struggles with Liverpool this season.
Angola vs Egypt: In eight games between the two nations, the Black Sable Antelopes are yet to triumph over The Pharaohs. Egypt have been winners on four occasions, with four draws recorded along the way.
Angola vs Egypt starting line-ups:
Angola: Marques, Modesto, Gaspar, Carmo, Fortuna, Maestro, Mukendi, Fredy, Luvumbo, Mabululu, Banza
Egypt: Shobeir, Fotouh, Sobhi, Abdelmaguid, Eid, Lasheen, Ismail, Saber, Adel, Mohsen, Mohamed
17h30 – Group B wraps up in this early evening slot, with Zimbabwe taking on South Africa at the Marrakesh Stadium.
While a draw will be enough for South Africa to guarantee progression into the round of 16, Zimbabwe need a win to put themselves in contention for a first-ever progression beyond the group stage.
This match will be played simultaneously to the other Group B fixture, pitting Angola against Egypt (already confirmed as group winners) in Agadir.

