Malawi found the opening goal in the fourth minute of the first period through Dala Simba Dala. South Africa equalised through a magnificent bicycle-kick by Sizwe Mkhize.
With the momentum in South Africa's side, Malawi conceded an own goal setting abuzz the South Beach Arena as the home crowd found their voices.
Malawi found an equaliser in the second period through their captain, Isaac Kajam. The hosts created a number of chances but could not convert those opportunities.
Kajam scored Malawi's third goal in the third period and Sandrim Ussi ensured a win for Malawi as he found his second goal of the match. In the opening match, Morrocco beat defending champions Mozambique 5-2 while Seychelles defeated Saudi Arabia 3-1. Angola edged Tanzania.
South Africa continue their quest for a place in the semi-finals when they take on Seychelles at 12h00. Mozambique and Tanzania will open the day in the first encounter at 10h30 while Morrocco and Angola will clash at 14h30.
Malawi and Saudi Arabia match will conclude the program of the second day.
All matches are being played at the South Beach Arena, Durban.