Sri Lanka spinner Muttiah Muralitharan became the highest wicket-taker in test cricket as South Africa struggled to 247 for five at tea on the third day of the first test today.
Muralitharan had opener Martin van Jaarsveld caught at slip for his 528th wicket to pull one ahead of Australian leg spinner Shane Warne.
South Africa, who started the day on 82 without loss in reply to the host's 486, were forced to battle hard for their runs throughout the two slow-scoring sessions.
After just 14 runs were added in the first hour, Jacques Kallis, rescued their position with a commanding 59, adding 72 runs for the third wicket with Jacques Rudolph before becoming Muralitharan's second victim when he skied an attempted slog.
Captain Graeme Smith, pushed down the order after suffering from a virus, added 45 runs with Rudolph for the fourth wicket before being trapped lbw for 23 by left-arm spinner Sanath Jayasuriya.
Wicketkeeper Mark Boucher (six) was also snared by Jayasuriya, but Rudolph held firm to finish on 54 not out, his fifth test half century.
Muralitharan bowled the bulk of Sri Lanka's overs and went to tea with two for 103 from 36 overs while Jayasuriya had two for 22 from 14 overs.
South Africa started the day badly when Boeta Dippenaar was run out trying to steal a quick single.
Dippenaar, who had not added to his overnight 46, was left yards short of his crease after Muralitharan parried Chandana's accurate throw on to the stumps.