Hashim Amla and Jacques Kallis hit centuries as South Africa moved into a commanding position on day two of the opening Test against India at Centurion.
The third-wicket pair put on an unbroken stand of 200 as the Proteas advanced to 366-2 in their first innings by stumps, already a lead of 230.
Amla finished on 116 not out and Kallis an unbeaten 102 as India were made to toil in the field - a day after being skittled on a wicket that started damp but has since flattened out.
The tourists had failed to add to their overnight position of 136-9 when play resumed on the second morning, Morne Morkel trapping Mahendra Singh Dhoni (33) lbw with the third ball of the day to complete career-best figures of 5-20.
Thereafter it was all about the home batsmen, Graeme Smith and Alviro Petersen setting the tone with half-centuries during an opening stand of 111.
Smith hammered 11 boundaries but fell in the over before lunch for 62, edging an attempted cut behind to give off-spinner Harbhajan Singh the opening breakthrough.
Harbhajan (2-107) struck again in the afternoon, Gautam Gambhir taking a bat-pad catch at short-leg to get rid of Petersen for 77.
Petersen's exit reduced South Africa to 166-2 and brought together their experienced third-wicket duo.
Amla and Kallis saw South Africa through to tea on 236-2, the latter moving past 1,000 Test runs in the calendar year.
And the runs continued to flow in the evening session - both batsmen were able to bring up their hundreds before the close, Kallis reaching the fastest of his 38 Test tons off just 130 balls, featuring nine fours and three sixes.
And Amla soon followed him to the landmark, completing his 12th Test century from 165 deliveries.
A few overs later the duo brought up their 200 partnership and the undefeated pair returned to pavilion to a standing ovation.
India's miserable day was encapsulated by seam bowler Shanthakumaran Sreesanth, who was tasked with leading the attack in the absence from this match of Zaheer Khan due to a hamstring injury.
Sreesanth conceded 71 runs from 19 wicketless overs and twice allowed the ball to go through him for four on the fine-leg boundary.
He endured repeated heckling and sarcastic applause from a section of the crowd and one spectator was ejected from the ground after Sreesanth complained to the umpires.
"The player complained to the umpires about being verbally abused," said Arrie de Beer of the International Cricket Concil's Anti-Corruption and Security Unit.
"Myself, fourth umpire Brian Jerling and security personnel were asked to go over to the spectator concerned and he was removed from the ground by security. It is unclear at the moment whether the abuse was racial or not."