Faf du Plessis defied Australia's attack for the second time this week before running out of batting partners when South Africa was dismissed for 225 late on the first day of the third cricket Test.
Du Plessis finished unbeaten on 78 and guided crucial partnerships of 57 with Robin Peterson (31) and 64 with Vernon Philander (28) to lift South Africa out of serious trouble at 75-6 after winning the toss.
Australia reached 33-2 in the 11 overs before stumps.
The 28-year-old du Plessis scored 78 in his first test knock last week and added an unbeaten 110 in his second innings on Monday, when he batted through the day to save the second test and win man-of-the-match honors at Adelaide.
Watson made a welcome return from a calf injury, having missed Australia's last eight home Tests, finding a thick outside edge from Smith to remove the Proteas skipper.
Just before lunch, Starc (2-47) struck two telling blows as the day took a sharp turn.
Starc removed opener Alviro Petersen (30) when he bowled the right-hander with a full delivery and then found a way through the defence of Kallis (2), who overcame a hamstring injury to take his place in the match, with a similar ball.
Already struggling at 63-3 at lunch, the Proteas crumbled after the resumption, with Hashim Amla (11), AB de Villiers (4) and debutant Dean Elgar (0) all falling in quick succession.
Amla was run out by a brilliant direct hit from David Warner in covers, de Villiers became Hastings' first Test scalp when caught at first slip by Clarke and Elgar gave Johnson a well-deserved first wicket when he was caught behind.
Just before tea, spinner Nathan Lyon (1-13) had Robin Peterson caught behind for 31 to end a 57-run partnership with du Plessis.