Cape Town:Ashwell Prince scored an undefeated 55 to lead South Africa to 218-5 at stumps in the second Test, only 25 runs behind West Indies' first innings total.
South Africa needed just 15 minutes after play resumed on the second day to dismiss the visitors for 243 at the Newlands Stadium.
In reply, South Africa struggled at 131-5 before Prince shared an unbroken 87-run partnership with Mark Boucher, who was on 35 at the close.
West Indies medium-pace bowler Dwayne Bravo wrecked South Africa's middle-order slump, bowling unchanged for 24 overs to take 3-46.
His stint included 15 overs between lunch and tea, during which he took the prize wicket of Jacques Kallis, caught behind by Denesh Ramdin for 36.
In his next over Bravo trapped Hashim Amla leg before wicket for 32.
Immediately after tea, Bravo added the wicket of AB de Villiers, also caught by Ramdin, for two runs.
Prince and Boucher steadied the innings and put South Africa in a position to take a first-innings lead when play resumes on Friday.
Prince faced 139 balls, and Boucher had 96 deliveries.
West Indies leads the series 1-0 after winning the first Test by 128 runs. The third and final test starts Jan 10 in Durban.
South Africa had reached 52-1 at lunch, with Neil McKenzie - who replaced Herschelle Gibbs to open with captain Graeme Smith - the only wicket to fall in the morning session.
The pair put on 46 before McKenzie was out for 23 when he edged a delivery from Jerome Taylor to West Indies captain Chris Gayle at first slip.
Smith, who never looked comfortable, was out soon after lunch - caught by Ramdin for 28.
Kallis set about rebuilding the innings with Amla, and the pair put on 59 for the third wicket before Kallis fell to Bravo.
South Africa battled to 125-4 at tea, at which point Prince had yet to score.
Bravo was supported by a good spell from Taylor, who took 2-45 in 18 overs.
The West Indies bowling attack was weakened when Edwards left the field with a hamstring problem after the fifth ball of his fifth over.
Earlier, Andre Nel finished off the West Indies tail.
Shivnarine Chanderpaul was undefeated on 65, while Dren Powel was aught b Kallisfor aduck, and Fidel Edwards made two before beng caugh by De Viliers.
Dale teyn wasthe bet of the South African bowlers wth 4-60 Nel finished with 3-61.