South African captain Shaun Pollock and vice-captain Mark Boucher frustrated the Sri Lankans with a record seventh wicket partnership to leave the home side with a clear advantage at the end of the third day of this second Test at SuperSport Park on Sunday.
The lower order pair came to the crease with the South African innings wobbling on 264 for six but quickly regained the initiative, first wiping out the first innings deficit and then building a valuable lead during the 132 run stand.
They were separated when Boucher (63) drove a return catch straight back to Chamila Gamage, but by then the damage had been done and at the close South Africa were 421 for nine, already 98 runs ahead.
For Sri Lanka it was a long hot afternoon of frustration. Unlike at Wanderers they retained their discipline and made South Africa work hard for their runs, especially during the morning, but they lacked penetration and by the time the top order had been winkled out they were running out of steam.
The pair batted positively, raising the tempo after a slow scoring morning and early afternoon. They wiped out the deficit before tea and then pressed on purposefully after the break, delighting the largest crowd of the series that lounged on the grass banks that ring this ground.
Shaun Pollock, who scored a century against the Sri Lankans at the same venue on the last tour, finished the day unbeaten on 78 from 139 balls having hit eight fours and one six. He will now be hoping that Makhaya Ntini can accompany him to a third Test century tomorrow.
Even Muttiah Muralitharan was forced to toil, bowling a remarkable 49.2 overs before claiming his first victim. For a side that have reputation for being susceptible against spin, South Africa have handled the master spinner with surprising ease.
Muralitharan did, at least, have the satisfaction of moving past Kapil Dev's 434 Test victims to become the third highest wicket taker in Test history when, late in the day, he trapped Andrew Hall lbw for a duck and then had Steve Elworthy (5) caught at silly point late in the day.
Sri Lanka are not out of the game. In theory all three results are still possible. However, with only two days now remaining, Sri Lanka will have to score very quickly if they are to overhaul the South African lead and set a target that gives them sufficient time to force a win. A draw appears the likeliest result.
Muralitharan said afterwards that Sri Lanka were still looking for victory: "We wanted to get them out for somewhere around our score but we can still put pressure on them in the final day if we score around 300 tomorrow - chasing 200 on the last day will not be easy."
Earlier in the day, Sri Lanka had started well, ending a 139 run partnership for the third wicket between Jacques Kallis (84) and Herschelle Gibbs (92) thanks to a suicidal piece of running from Gibbs who was left stranded half way down the pitch after being sent back by Kallis.
It was a major bonus for the Sri Lankans, who had rarely troubled the pair, and it was followed soon after by the fall of Kallis, who was bowled by a perfect leg-cutter from Hasantha Fernando, the medium pacer's first ball of the day.
At 219 for four Sri Lanka were pulling themselves back into the game. That became to 264 for six after lunch when Chaminda Vaas used the second new ball to good effect, surprising Ashwell Prince (20) with a sharp short ball, and Gamage trapped Neil McKenzie (28) lbw.