AB de Villiers fell one run short of a century as South Africa added 299 runs on day two of the opening Test against Sri Lanka at Centurion Park to build a 209-run lead.
The home side closed on 389 for nine in reply to Sri Lanka's 180 having battled hard in tricky batting conditions to keep the determined Sri Lankans at bay.
Although Jacques Kallis (31) and Ashwell Prince (39) were both dropped during the course of their innings, the catching from the tourists was good and in parts outstanding.
Angelo Mathews dived full length to catch Hashim Amla at slip for 18 and substitute Dimuth Karunaratne held on to a low chance in the gulley to remove de Villiers, who had until that point been on a seemingly inevitable course towards three figures.
He hit 12 fours and faced 135 balls in all before failing to get over his cut shot off Tissera Perera - either side of the fielder and it would have been another boundary but it was not to be for de Villiers.
Nor was it for Dale Steyn, who was run out in almost the first action of the day having failed to score and just over ten overs later Sri Lanka were celebrating again when Perera induced Amla to drive loosely outside off stump.
Jacques Kallis then ducked into a delivery that didn't get up and copped a fearful blow on the helmet before Jacques Rudolph (44) edged Perera to Tharanga Paranavitana behind the wicket, his 140-ball vigil ended by a decent delivery.
Kallis fell to another catch at the wicket - Mathews the catcher, Chanaka Welagedara the bowler before de Villiers and Prince added 97 for the sixth wicket.
Prince struggled early on with several of his early runs coming via the edge of his bat but he battled his way to 39 in 98 balls and the end came when he was caught by wicket-keeper Kaushal Silva off Mathews.
After de Villiers' inexorable surge towards his century was arrested, Sri Lanka might have hoped to be batting before close of ply but Mark Boucher, unbeaten on 49, and Imran Tahir, not out on a run-a-ball 24, frustrated Sri Lanka after Vernon Philander and Morne Morkel both fell for four to Tillakaratne Dilshan and Welagedara respectively.
Tahir hit four fours - one coming through point as presented with a wide long-hop being despatched as if he was showing de Villiers how it should have been done while Boucher rotated the strike cleverly and hit four fours himself to boost the Proteas, putting them into a position from which, 99 times out of 100, they would go on to at the very least avoid defeat.
Philander took five for 53 - his third five-wicket haul in his first three matches - and Steyn four for 18 on the opening day as Sri Lanka were bundled out in just 47.4 overs.
© Cricket World 2011
Open an account with bet365 today and qualify for up to £200 in free bets with our fantastic 100% Deposit Bonus.