Ganguly top-scored on a hostile pitch to give India a 23-run first innings lead on the second day after the hosts reached 288 for nine at stumps.
"It is one of the best knocks I have played considering the surface, it is one of my top test knocks," the 35-year-old former skipper told reporters.
Ganguly was disappointed to miss his well deserved 16th Test century after he was out at the same score for the second successive innings, holing out fast bowler Dale Steyn to deep cover to be the ninth wicket to fall.
He also top-scored in the second innings of the previous Test in Ahmedabad last week which South Africa won by an innings and 90 runs to take a 1-0 series lead.
His crucial partnerships lifted the innings on a pitch where some deliveries exploded from the cracks.
"On this surface you never know what is going to happen," he said. "If the spinners bowl well and we get early wickets, we can bowl them out below 150."
Ganguly hoped the last wicket pair of Shanthakumaran Sreesanth and Ishant Sharma could somehow click.
"If Sree and Ishant can do some magic tomorrow it will be great," he said. "We should somehow get to a 50-run lead and pick up two wickets before they get to 50."
South Africa coach Mickey Arthur said even a small total would be tough to chase for India in the fourth innings.
"There is always something happening on the wicket," he said. "It is a day five wicket on day two, not ideal for test cricket."
He praised his players for claiming five wickets in the final session to prevent India from taking a big lead.
"A lead of 20 runs is not that significant but we can't let it get to 40 or 50," he said. "We must wrap it up and bat really well.
"Any total over 150 or 160 will be tough to chase."