Zander Lombard saw his lead cut to one shot heading into the final round of the Nedbank Golf Challenge after firing a battling 72 at Gary Player Country Club.
The world number 234 entered day three two ahead but dropped three shots in as many holes from the sixth to find himself trailing 2010 Open champion and fellow South African Louis Oosthuizen.
He reclaimed a share of the lead on the ninth and then came home in 34 to sit at 11 under, one shot clear of Oosthuizen and Belgian Thomas Detry.
Englishman Oliver Wilson was then at eight under after a 67, alongside Swede Marcus Kinhult.
The performance represents a big upturn in form for Lombard, who had to go back to the qualifying school last season and missed eight cuts in a row in the middle of the season.
"I'm still in the lead," he told europeantour.com. "I've got to stay positive and I'm really looking forward to tomorrow.
"I don't want to sound cocky but it's been a long time coming. I've really made big strides in how I do things on and off the golf course. It's nice to get some feedback and some results from the hard work."
Oosthuizen almost did not play this week and was in pain with kidney stones just hours before his Thursday tee time but he carded a 71 to stay right in contention alongside Detry, who recorded a 69.
The highlight of Wilson's 67 was a chip-in on the 15th, while Kinhult recovered from being three over after six holes in a 70.
Defending champion Lee Westwood and fellow Englishman Aaron Rai were at six under, four shots clear of Scotsman Robert MacIntyre, who carded the lowest round of the day with a 65.