Zambia end 16-year wait for semis
Favourites Zambia were rarely under pressure and Sunzu took advantage of slack marking to nod them ahead on 15 minutes, Katongo scored the second midway through the second half, and substitute Chamanga added a late third.
Sudan had Saif Eldin red-carded 19 minutes into the second half when his team were trailing by one goal, and his dimissal signalled the end of any hope the Jediane Falcons had of causing an upset.
Zambia kept faith in the team that defeated co-hosts Equatorial Guinea to top Group A while Sudan made one enforced change from the side that edged Burkina Faso, with Musab replacing injured defender Nagm Eldin.
It did not take Zambia long to break the deadlock through a glancing header from centre-back Sunzu, and they would have been more than 1-0 ahead at half-time but for several brave saves by Akram.
Sunzu strikes first
The goal was a gift from the Sudanese defence as they stood still while Sunzu moved forward to connect with a Rainford Kalaba free-kick and nod the ball in at the near post.
Another Kalaba free-kick nearly led to a second goal soon after the half-hour mark as he played the ball back into the path of onrushing Nathan Sinkala and Akram did well to parry a drive away at the expense of a corner.
Sudan were slow and predictable, and battling to create chances, and lost midfielders Ala Eldin and Nazar through injuries with Amer and Ramadan coming on.
After applying early second-half pressure, Sudan suffered a double blow when Eldin was sent off after getting a second yellow card for fouling Kalaba inside the box and Katongo scored almost immediately.
His penalty produced a fine save from Akram, who appeared well off his line when the kick was taken, but the captain struck the rebound into the net with his weaker left foot, and Chamanga curled the ball in with four minutes left.