Charl Schwartzel will take a one-shot lead into the weekend after firing an excellent bogey-free 63 on day two of the South African Open.

The 2011 Masters champion is looking for a first win since 2016 and made six birdies and a spectacular eagle over the Bushwillow Course at Randpark Golf Club to get to 12 under.

Zambian Madalitso Muthiya was at 11 under, a shot clear of 2010 Open champion Louis Oosthuizen, fellow South African Zander Lombard and America's Kurt Kitayama.

Birdies at the first and fifth helped Schwartzel turn in 33 and he was edging into contention after further gains on the 11th, 12th and 14th.

A long putt on the 16th had him within one of the lead and despite having to lay up on the 17th after a poor tee-shot, he spun his third into the cup on the par five for an eagle.

The South African has six top fives without a victory at his home open and was refusing to get carried away after seeing some recent good form fail to yield a victory.

"I still can't figure out why I'm not getting the performances I need, even after that round," he told europeantour.com.

"I've had a few tournaments where I've played well like this, so I'm not going to talk too much yet.

"There's lots of golf to play. All I know is I'm playing well. I'm driving the ball well and I haven't been doing that consistently."

Muthiya carded a 68 on the Firethorn Course, a score matched by Lombard on the Bushwillow. Kitayama registered a 69 on the Bushwillow, with Oosthuizen battling to a 70 on the Firethorn.

England's Matt Wallace was playing alongside Oosthuizen and he signed for a 69 to sit at eight under.