Former U.S. Masters champion Schwartzel, who last year romped home by 12 strokes for the third-largest winning margin in European Tour history, returned a second successive 68 for an eight-under-par total of 136 at Leopard Creek on the border of the Kruger Park.
Madsen, who played alongside Schwartzel in winning the South African title last Sunday, overcame two double bogeys to finish with three birdies in the last five holes for a one-under 71 for his round.
Ryder Cup players Ross Fisher of England and Soren Hansen of Denmark both produced the best rounds of the day, seven-under-par 65s, on the picturesque course, putting them one off the lead on 137.
South African Tyrone van Aswegen and Englishman Richard Finch were a further shot back although Finch, who lost his tour card last year and is playing by invitation, might have been further up the leaderboard.
He was the early frontrunner on Friday but two bogeys and then a double bogey on his last three holes saw him finish with a 70.
Double major winner John Daly missed the cut as he continued his comeback from an elbow tendon injury in only his second tournament since surgery in July.
The American's three-over 73 left him on 147 for the first two rounds, three shots above the cut.