Els collected his 22nd European Tour win in just his second event back from knee surgery. In his first event last week, he was never a factor at the Nedbank Challenge, where he finished ninth. Els injured his knee in late July while vacationing after the British Open.
'It might come across a bit cocky if you say you are going to win considering my circumstances,' said Els. 'But I was hitting the ball well enough to have a chance.'
Louis Oosthuizen and last year's winner, Charl Schwartzel, each posted rounds of 2-under 70 to share second place at 11-under-par 277.
Van den Berg, who was bidding to be the seventh straight first-time winner here, struggled to a 4-over 76. His back nine included three bogeys and two double bogeys as he shot seven-over 44 on the second nine.
The 76 dropped Van den Berg into a share of fourth place at 8-under-par 280. He was joined there by Bobby Lincoln (65), David Lynn (68) and Trevor Immelman (68).
Van den Berg posted a 65 in the third round to lead by two entering the final round at Leopard Creek Country Club. He was in control of the event throughout the front nine.
The South African ran off four birdies in a six-hole stretch from the second to jump to 16-under. At that point, Van den Berg had a three-stroke cushion over Els.
Van den Berg's troubles began at the ninth. He stumbled to a bogey there, his second on that hole this week, and it was all downhill from there.
Els meanwhile kept pace as he picked up birdies on one and two to move to minus-12. Els got within three with a birdie on the short par-4 sixth, but he tripped to a bogey at the next.
The two-time U.S. Open winner ran off five straight pars around the turn as Van den Berg began to stumble. Despite those five pars, Els walked to the 13th tee with the lead.
Van den Berg triple-bogeyed the 11th and bogeyed the 12th to fall to 11 under, one stroke behind Els. Van den Berg finally got one stroke back with a birdie on No. 15. However, he double bogeyed the 16th after his tee shot found water, then bogeyed 17 and 18 to end six shots back.
'I just melted down. I hit a bad tee shot on 11 and lost a lot of confidence after that,' stated a down-trodden Van den Berg.
Els birdied the par-5 13th to move to 13 under, two clear of Van den Berg. Els picked up his third birdie in the last three rounds on the par-5 15th. He then closed with three straight pars to collect the win.
'I think it was my experience that helped me pull this one off, but I really feel for Ulrich,' Els said. 'He was so relaxed and putting so well that after eight holes I turned to Simon (Masilo) said I didn't know how we were going to catch him.
'But then the wheels came off a little bit and that opened the door for me. But he is a great golfer and a true gentleman and I really admire the way he kept his composure. I'm not sure that I could have behaved that way under the circumstances.'
Joakim Haeggman shot a 4-under 68 in the final round to get to 7-under-par 281, where he finished alongside Alan Michell (72), Jaco Van Zyl (73) and Sean Farrell (71).