Van Rooyen carded a closing 64 at Hills Golf & Sports Club to finish 19 under par, a shot ahead of England’s Matt Fitzpatrick, who had birdied the 17th and 18th to also post a 64.
Home favourite Henrik Stenson, who held a share of the lead after making a hole-in-one on the sixth, finished in a tie for third with South Africa’s Dean Burmester after both men shot 66.
Van Rooyen began the day with a one-shot lead and looked to be in control after six birdies in his first 13 holes, but crucially bogeyed the 17th after Fitzpatrick birdied the same hole.
Fitzpatrick, who won this title in 2016, also birdied the last to draw level on 18 under but Van Rooyen held his nerve to birdie the last for the fourth day running, holing from 12 feet for the win.
“It’s too good, it’s hard to describe,” Van Rooyen told Sky Sports. “I was so nervous on 18. On 17 I was fine I just didn’t hit that (par) putt hard enough and then I asked (his caddie) Alex (Gaugert) ‘what are we at’ and he told me Matt went birdie-birdie.
“I’ve been putting so well all day and to hole that one to win, it’s my first one, it’s pretty cool.
“I didn’t know where I was at until 16. I thought I had a three-shot lead and I knew when I made bogey on 17 it was going to be tight. I’m just so proud of myself and Alex and everybody - over the moon.”
Fitzpatrick was unfortunate to see a superb approach to the 14th rebound off the pin and roll off the green, leading to his first bogey of the day.
The former Ryder Cup player bounced back to birdie the next but also dropped a shot on the 16th before piling the pressure on Van Rooyen with two closing birdies.
“I didn’t put a foot wrong, I didn’t really miss a shot,” said Fitzpatrick, who has now been a runner-up three times this season. “I hate to say it but I had no luck out there.
“I’m really comfortable with where my game is at, another second place, so hopefully we’ll have one better later this year.”