Zambia defeated the Young Flames 3-2 in a thrilling encounter to finish top of Group A, while Eswatini’s 1-1 draw with 10-man South Africa was enough to see them finish second.
Zambia will now take on the runner-up in Group B, Angola, in the semifinals on Friday, 18 October with that match is scheduled to kick-off at 14h30 local time (12h30 GMT) at the Mpira Stadium.
Eswatini will play Group B winners Mozambique in the other semifinal at 11h00 (09h00).
Zambia took a sixth-minute lead against Malawi to silence the home crowd as Rickson Ng’ambi picked out Lasmond Phiri and he provided a neat finish in the box.
Noel Sakala almost found an equaliser when his rasping shot cannoned off the crossbar, but the home side were level shortly afterwards as Frank Mahowa drilled the ball home with a well-taken left-footed shot.
The teams were level at the break, but Zambia regained the lead on 49 minutes as Kelvin Mwanza provided a perfect through ball for Moses Mulenga to score.
But Malawi refused to give up in a spirited display and it was 2-2 when Zambia goalkeeper David Minganja made a hash of his attempted clearance and Chikumbutso Salima picked up the loose ball to score.
But Zambia would not be denied and Peter Chikola provided a piece of magic with a superb shot direct from a corner to hand them the lead for the third time.
This time they were able to hold on and make it three wins from three in the pool stages.
Eswatini got the point they needed to secure second place as they took the lead through Mpendulo Makhanya four minutes before halftime.
But South Africa grabbed an equalizer through Thabang Mahlangu, who’s fierce 30-yard drive found its way into the back of the net.
Mahlangu received a late red card for as South Africa pushed for the winner, but Eswatini were comfortable with the draw and their place in the next round.
South Africa 1 (Mahlangu 63’) Eswatini 1 (Makhanya 41’)
Zambia 3 (Phiri 6’, Mulenga 49’, Chikola 65’) Malawi 2 (Mahowa 21’, Salima 58’)
11h00: Mozambique vs Eswatini – Mpira Stadium
14h30: Zambia vs Angola – Mpira Stadium
Group A P W D L GF GA Pts
Zambia (Q) 3 3 0 0 16 2 9
Eswatini (Q) 3 1 1 1 3 8 4
Malawi 3 1 0 2 6 5 3
South Africa 3 0 1 2 1 11 1
Group B P W D L GF GA Pts
Mozambique (Q) 3 2 1 0 5 1 7
Angola (Q) 3 2 0 1 5 2 6
Comoros 3 1 1 1 1 2 4
Lesotho 3 0 0 3 2 8 0
Matches Played: 12
Goals scored: 40
Biggest victory: South Africa 0 Zambia 7 (Group A, October 14)
Most goals in a game: 7 – South Africa 0 Zambia 7 (Group A, October 14)
4 goals – Simon Capriano (Mozambique)
3 – Moses Mulenga (Zambia), Rickson Ng’ambi (Zambia)
2 – Peter Chikola (Zambia), Francisco Chiquinho (Angola), Miguel Chirwa (Zambia), Charles Mumba (Zambia), Dave Tobias (Malawi)
1 – Jose Antonio (Angola), Joseph Banda (Zambia), Valdemiro Domingos (Angola), Colani Dvuba (Eswatini), Rivaldo Fonseca (Angola), Julius Kumwenda (Zambia), Kamal Kifli (Comoros), Frank Mahowa (Malawi), Mpendulo Makhanya (Eswatini), Thabang Mahlangu (South Africa), Moqolisi Mothae (Lesotho), Andre Muhongo (Angola), Lasmond Phiri (Zambia), Noel Sakala (Malawi), Chikumbutso Salima (Malawi), Taemane Shea (Lesotho), Chipyoka Songa (Zambia), Mike Thomu (Malawi), Aylot Zerefos (Mozambique), Khayalethu Zitha (Eswatini)