The former British Open champion beat Van der Walt by two shots after closing with a 6-under 67 for a 27-under total of 265 at the season-opening European Tour event.
Van der Walt shot a 69 to finish one shot ahead of Retief Goosen, who also carded a 69 at East London Golf Club.
Oosthuizen and Van der Walt were tied with two holes to play but Oosthuizen's birdie and Van der Walt's bogey at the short par-3 No. 17 finally separated the pair.
It was the 29-year-old Oosthuizen's fourth European Tour title and first since his win in East London in 2011, while Van der Walt again missed out on a first professional victory.
Oosthuizen had an up-and-down front nine at the par-73 course with an eagle, four birdies and two bogeys. But he birdied Nos. 11 and 17 and didn't drop any shots coming home to claim the $201,000 winner's check.
Van der Walt opened with three straight birdies and had five in all. His only bogey of the day was the crucial slip at No. 17, where he missed a birdie chance and a short putt for par.
"It was a real dogfight for most of the day," Oosthuizen said. "What happened on 17, it was going to be one of us who faltered. If I two-putted, he would probably have made that short putt.
"One of us needed to make some big putt to put a lot of pressure on the other guy and it was just fortunate for me that it went my way."
Goosen, who won the Africa Open in 2009, managed an eagle and three birdies but dropped a shot at No. 10 and finished alone in third, one clear of Jaco van Zyl (66).
Scotland's Alastair Forsyth was fifth to break up a run of South Africans at the top of the leaderboard. Another South African, Richard Sterne, closed with a 3-under 70 for 20 under and sixth in his first tournament in nearly a year after struggling with major back problems.