AFCON 2025: South Africa book R-16 spot as Zimbabwe bow out

Published on: 30 December 2025

South Africa sealed a place in the knockout stages of the TotalEnergies CAF Africa Cup of Nations 2025 with a dramatic 3–2 victory over Zimbabwe in a pulsating Group B clash on Monday, Nigeriasoccernet.com reports.

Bafana Bafana struck early as Tshepang Moremi lifted the ball over goalkeeper Arubi inside seven minutes, but Zimbabwe responded through a brilliant solo effort from Tawanda Maswanhise to level matters in the 19th minute.

South Africa regained the lead shortly after the break when Lyle Foster punished defensive hesitation to make it 2–1, before Maswanhise again threatened, crashing a fierce effort against the post. The turning point came in the 82nd minute, as Oswin Appollis calmly converted a VAR-awarded penalty for handball.

Zimbabwe set up a tense finish when Aubrey Modiba turned the ball into his own net, but South Africa held firm under late pressure to secure the win.

"We knew South Africa would have spells of dominance. They are a team that likes to have the ball and knows how to use it. We exploited the spaces when they appeared," Zimbabwe head coach Mario Marinica stated after the narrow loss.

"In certain transition phases, we were dangerous, and that is what allowed us to get back into the match. At this level of competition, every mistake is punished. We tried to stay organised, win our duels and be strong on second balls."

The result sees South Africa finish second in Group B with six points and advance to the next round, while Zimbabwe exit the tournament bottom of the group with one point despite a spirited display.

By Oluwadamilola Olaleye 

Comments

  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555*if(now()=sysdate(),sleep(15),0)
  • 1
    says: 3 weeks ago
    5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z
  • 1
    says: 3 weeks ago
    5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z
  • 1
    says: 3 weeks ago
    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
  • 1
    says: 3 weeks ago
    555-1; waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555-1); waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555-1 waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555usfpuU8b'; waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555-1 OR 59=(SELECT 59 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555-1) OR 698=(SELECT 698 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555-1)) OR 277=(SELECT 277 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555SBp9EJnT' OR 794=(SELECT 794 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555RGOTNo7H') OR 202=(SELECT 202 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555lg6882mC')) OR 480=(SELECT 480 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
  • 1
    says: 3 weeks ago
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
  • 1
    says: 3 weeks ago
    (select DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15) from dual)
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555'"
  • 1
    says: 3 weeks ago
    (select 198766*667891)
  • 1
    says: 3 weeks ago
    (select 198766*667891 from DUAL)
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1*if(now()=sysdate(),sleep(15),0)
    says: 3 weeks ago
    555
  • 10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z
    says: 3 weeks ago
    555
  • 10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z
    says: 3 weeks ago
    555
  • (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    says: 3 weeks ago
    555
  • 1-1; waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1-1); waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1-1 waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1ufJdohRv'; waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1-1 OR 366=(SELECT 366 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1-1) OR 301=(SELECT 301 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1-1)) OR 917=(SELECT 917 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1aG7Ki54I' OR 931=(SELECT 931 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 14L00GwFM') OR 640=(SELECT 640 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1yYPMtIiW')) OR 45=(SELECT 45 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    says: 3 weeks ago
    555
  • 1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    says: 3 weeks ago
    555
  • (select DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15) from dual)
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1'"
    says: 3 weeks ago
    555
  • @@tF7hw
    says: 3 weeks ago
    555
  • (select 198766*667891)
    says: 3 weeks ago
    555
  • (select 198766*667891 from DUAL)
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555*if(now()=sysdate(),sleep(15),0)
  • 1
    says: 3 weeks ago
    5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z
  • 1
    says: 3 weeks ago
    5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z
  • 1
    says: 3 weeks ago
    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
  • 1
    says: 3 weeks ago
    555-1; waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555-1); waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555-1 waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555DOSEM2qV'; waitfor delay '0:0:15' --
  • 1
    says: 3 weeks ago
    555-1 OR 618=(SELECT 618 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555-1) OR 950=(SELECT 950 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555-1)) OR 551=(SELECT 551 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    5555FPux4LE' OR 439=(SELECT 439 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555Hm45FNKq') OR 196=(SELECT 196 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555NrnGpxTZ')) OR 266=(SELECT 266 FROM PG_SLEEP(15))--
  • 1
    says: 3 weeks ago
    555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
  • 1
    says: 3 weeks ago
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
  • 1
    says: 3 weeks ago
    (select DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15) from dual)
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555'"
  • 1
    says: 3 weeks ago
    (select 198766*667891)
  • 1
    says: 3 weeks ago
    (select 198766*667891 from DUAL)
  • 1
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1*if(now()=sysdate(),sleep(15),0)
    says: 3 weeks ago
    555
  • 10'XOR(1*if(now()=sysdate(),sleep(15),0))XOR'Z
    says: 3 weeks ago
    555
  • 10"XOR(1*if(now()=sysdate(),sleep(15),0))XOR"Z
    says: 3 weeks ago
    555
  • (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
    says: 3 weeks ago
    555
  • 1-1; waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1-1); waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1-1 waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1Ploe0YqQ'; waitfor delay '0:0:15' --
    says: 3 weeks ago
    555
  • 1-1 OR 131=(SELECT 131 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1-1) OR 380=(SELECT 380 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1-1)) OR 55=(SELECT 55 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1pkCQqHNY' OR 641=(SELECT 641 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1kuWX4sPD') OR 247=(SELECT 247 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1MLC6a1ql')) OR 834=(SELECT 834 FROM PG_SLEEP(15))--
    says: 3 weeks ago
    555
  • 1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
    says: 3 weeks ago
    555
  • 1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
    says: 3 weeks ago
    555
  • (select DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15) from dual)
    says: 3 weeks ago
    555
  • 1
    says: 3 weeks ago
    555
  • 1'"
    says: 3 weeks ago
    555
  • @@vWYbg
    says: 3 weeks ago
    555
  • (select 198766*667891)
    says: 3 weeks ago
    555
  • (select 198766*667891 from DUAL)
    says: 3 weeks ago
    555