Botswana might have won by an even handier margin against three-time winners Angola had they used their counter-attacking opportunities to better effect in a convincing performance.
Mauritius looked well organised and disciplined as they hung onto a 1-0 win over Malawi.
Seakanyeng, named Man of the Match, set up the breakaway chance that led to the second goal on the stroke of half-time for Onkabetse Makgantai.
Angola threatened a second half comeback, reducing the deficit through Alem just before the hour mark as Botswana goalkeeper Bophelo Kealeboga missed a square cross from winger Va.
There were other chances for an equaliser but opportunities as well on the break for the Zebras, whose shooting let them down.
Mauritius surprised by taking the lead in the 15th minute through highly-rated left-back Damien Balisson at the end of a swift set of passes that opened up the Malawian defence.
Malawi then spent much of the match on the attack but were badly let down by their shooting and final touches, with the islanders hanging on grimly in the closing stages for a rare win in the competition.
Tuesday’s football at the tournament reverts back to Group A where Madagascar are heavily fancied to take a giant step towards finishing top, and booking a quarter-final place against hosts South Africa, when they play the Seychelles.
The match kicks-off at the Seshego Stadium at 19h30 (17h30 GMT).
If Madagascar win they will advance to six points, knocking Seychelles out in the process.
They will also have the advantage of knowing exactly what they need to do because the earlier match features Mozambique and the Comoros Islands at 17h00 (1500 GMT). Should it end as a draw, the Comoros will be on two points and Mozambique on one, leaving the coast clear for the Malagasy to go on and qualify with still one round to play on Thursday.
Angola 1 (Alem 59’) Botswana 2 (Kabelo Seakanyeng 4’, Onkabetse Makgantai 44’)
Malawi 0 Mauritius 1 (Damien Balisson 13’)
Comoros v Mozambique (KO 17h00 local, 15h00 GMT) – Seshego Stadium
Madagascar vs Seychelles (KO 19h30 local, 17h30 GMT) – Seshego Stadium