South Africa's Andrew Hall produced an inspired bowling performance at the death to ensure his side sneaked a nine-run victory over Sri Lanka in a triangular series one-day match in Adelaide on Tuesday.
Sri Lanka had been cruising to victory, chasing South Africa's 263 for five after Boeta Dippenaar had scored a career best 125 not out, before Hall and Johan van der Wath combined to take wickets and restrict runs in the final overs.
Tillakaratne Dilshan (82 not out) and Mahela Jayawardene (52) combined to score 107 runs and looked on course for the target of 224 for five in the 45th over before Jayawardene was bowled by van der Wath.
Hall then bowled Russel Arnold and ran out Malinga Bandara on successive balls in the 48th over to swing the game back in South Africa's favour and then bowled five no-scoring "dot" balls in the final over to restrict Sri Lanka to 254 for eight.
The victory moved South Africa to eight points on the table, one behind Sri Lanka. Australia head the table on 10 points and meet Sri Lanka in Adelaide on Thursday.
Dilshan and Jayawardene's partnership had resurrected Sri Lanka's run chase after South Africa had dismissed in-form Sanath Jayasuriya and Kumar Sangakkara within six balls of each other to leave them floundering at 68 for three.
Jayasuriya was brilliantly stumped down the leg side by wicketkeeper Mark Boucher after standing up to medium-fast bowler Hall for 37. His 31-ball innings included four boundaries and two sixes.
Sangakkara then mis-read a slower ball from van der Wath six balls later to be caught and bowled for 23.
Van der Wath returned to the bowling crease with Sri Lanka coasting to the target in the 45th over and bowled Jayawardene with his first ball.
Hall was then brilliant in his final two overs to give his side victory.
Sri Lanka's Muttiah Muralitharan passed a milestone in South Africa's innings when he had van der Wath (0) caught in close.
It was Muralitharan's 400th one-day international wicket and he joined Pakistan's Wasim Akram (502) and Waqar Younis (416) as the only bowlers to pass the mark.
South Africa Innings
G. Smith st Sangakkara b Muralitharan 28
B. Dippenaar not out 125
J. van der Wath c Arnold b Muralitharan 0
J. Rudolph c&b Dilshan 11
H. Gibbs b Perera 68
S. Pollock c Atapattu b Kulasekara 8
J. Kemp not out 6
Extras (b-2 lb-11 w-4) 17
Total (for 5 wickets, 50 overs) 263
Fall of wickets: 1-72, 2-72, 3-101, 4-220, 5-249
Did not bat: A. Prince, M. Boucher, A. Hall, C. Langeveldt
C. Vaas 10 - 1 - 55 - 0
R. Perera 7 - 0 - 45 - 1
N. Kulasekara 9 - 1 - 35 - 1
M. Muralitharan 10 - 0 - 45 - 2 (w-1)
T. Dilshan 8 - 0 - 43 - 1
S. Jayasuriya 6 - 0 - 27 - 0
Sri Lanka Innings
J. Mubarak c Prince b Pollock 4
S. Jayasuriya st Boucher b Hall 37
K. Sangakkara c&b van der Wath 23
T. Dilshan not out 82
M. Atapattu run out 23
M. Jayawardene b van der Wath 52
R. Arnold b Hall 11
M. Bandara run out 0
C. Vaas c Botha b Pollock 9
M. Muralitharan not out 0
Extras (lb-6 nb-2 w-5) 13
Total (for 8 wickets, 50 overs) 254
Fall of wickets: 1-11 2-68 3-68 4-117 5-224 6-242 7-242 8-253
Did not bat: N. Kulasekara
S. Pollock 10 - 1 - 51 - 2 (w-1)
C. Langeveldt 10 - 0 - 62 - 0 (nb-1 w-1)
J. van der Wath 10 - 1 - 37 - 2 (nb-1)
A. Hall 10 - 1 - 38 - 2 (w-1)
J. Botha 9 - 0 - 53 - 0 (w-2)
G. Smith 1 - 0 - 7 - 0
Result: South Africa won by 9 runs