An unbeaten half-century from Jacques Kallis helped South Africa end a rain-affected day one of the decisive third Test against India on 232 for four at Newlands.
Hashim Amla also hit an aggressive 59 as the hosts recovered from the early loss of Graeme Smith (six) and Alviro Petersen (21) to reach stumps on top in Cape Town.
Kallis was not out on 81 at the end with Ashwell Prince (28 not out) offering good support on a stop-start day that witnessed several rain interruptions.
The tourists, who won the Boxing Day Test in Durban by 87 runs to square the series, came into the game with plenty of confidence.
Captain Mahendra Singh Dhoni won the toss and had no hesitation putting South Africa in to bat, with Gautam Gambhir returning from injury in place of Murali Vijay. There was plenty of seam movement for opening bowlers Zaheer Khan and Sreesanth during the early exchanges and the former was rewarded in the seventh over with the wicket of Smith.
The home captain has struggled against Zaheer and was again dismissed lbw, the 11th time he has been out to the left-arm paceman in 23 international innings. Fifteen deliveries later the umpires called for the covers after the drizzle became heavier, with South Africa on 21 for one, forcing an early lunch.
Play was delayed for a further 35 minutes after the break and once it resumed Ishant Sharma (one for 39) lured Petersen into a loose drive which he edged behind to Dhoni.
Kallis and Amla took the South Africans past 50 in the 19th over, and reached their 50 partnership from just 70 deliveries.
Sreesanth had his revenge when Amla went for one shot too many and was caught at deep midwicket. Kallis and De Villiers took them past 150 but their partnership ended as Sreesanth (two for 70) teased De Villiers to play at a wide delivery outside off stump and Dhoni snapped up the edge.Reuse content