Sri Lanka off-spinner Muttiah Muralitharan recaptured the world Test wicket record on the third day of the first Test against South Africa on Friday before Jacques Rudolph scored a painstaking 85 not out as the visitors closed play at 347 for seven.
Muralitharan had opener Martin van Jaarsveld caught at slip in the first session for his 528th wicket to pull one ahead of Australian leg spinner Shane Warne and then combined with Sanath Jayasuriya to peg down the South Africans' scoring rate.
South Africa started the day on 82 without loss in reply to the host's 486. Just 14 runs were added in the first hour with the loss of Boeta Dippenaar, before Jacques Kallis scored a commanding 59, adding 72 runs for the third wicket with Rudolph.
Kallis pushed Sri Lanka onto the back foot with his aggressive approach, especially against Muralitharan, whom he slog-swept for several boundaries before the off spinner tempted him into another that he mistimed and skied a catch to Kumar Sangakkara at mid-wicket.
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 Jayasuriya.
Wicketkeeper Mark Boucher (six) was also snared by Jayasuriya, one of four spinners to be used by the hosts on the dry and cracked pitch, to reduce South Africa to 225 for five.
Sri Lanka took their second new ball but struggled to break a 62-run stand between Shaun Pollock (25) and Rudolph that carried South Africa past the follow on mark of 287.
Eventually, left-armer Chaminda Vaas produced a delivery that kicked off a length to catch the shoulder of Pollock's bat and fly to gully, where Sangakkara took the catch.
Lance Klusener (two), playing his first Ttest innings since 2002, lasted just 16 balls before popping up a catch in close.
Nicky Boje ensured South Africa survived the final 52 minutes without further loss as he scored 31 not out.
Muralitharan bowled the bulk of the overs and finished with two for 112 from 39 overs while Jayasuriya took two for 34 from 20 overs.
Scoreboard
Sri Lanka (1st innings): 486 (M.Jayawardene 237, C.Vaas 69, K.Sangakkara 58; S.Pollock 4-48)
South Africa (1st innings): (overnight 82-0)
B.Dippenaar run out 46
M.van Jaarsveld c Samaraweera b Muralitharan 37
J.Rudolph not out 85
J.Kallis c Sangakkara b Muralitharan 59
G.Smith lbw Jayasuriya 23
M.Boucher c Kaluwitharana b Jayasuriya 6
S.Pollock c Sangakkara b Vaas 25
L.Klusener b Jayawardene b Dilshan 2
N.Boje not out 31.
Extras: (b-14, lb-8, nb-10, w-1) 33.
Total: (for seven wickets, 124 overs) 347
Fall of wickets: 1-84, 2-96, 3-168, 4-213, 5-225, 6-287, 7-295.
To bat: M.Ntini, N.Hayward
Bowling: Vaas 22-9-45-1 (nb-6), Maharoof 19-9-42-0 (nb-1 w-1), Muralitharan 39-8-112-2 (nb-3), Chandana 18-0-68-0, Jayasuriya 20-9-34-2, Dilshan 6-0-24-1.