ICC Champions Trophy, The Oval: West Indies 249-5 (48.5 overs) beat South Africa 246-6 (50 overs) by five wickets
Ramnaresh Sarwan played the leading role with 75 as West Indies beat South Africa by five wickets to earn a place in the Champions Trophy semi-finals.
He shared partnerships of 98 with Brian Lara (49) and 83 with Shivnarine Chanderpaul before being bowled by Makhaya Ntini in the 46th over.
Chanderpaul stayed to the end, making 51 not out as they reached 249-5 with seven balls to spare.
South Africa had totalled 246-6, with Herschelle Gibbs hitting 101.
After spending much of the year on the receiving end from England in Test matches, West Indies emerged from the doldrums with a perfectly-timed run chase.
Chanderpaul rounded things off by whipping a ball from Charl Langeveldt to the long leg boundary to bring up his half century off 52 balls.
Resuming on 20-0 after play had to be held over because of rain on Saturday, they soon lost openers Chris Gayle and Wavell Hinds.
An un-Lara like heave cost the West Indies skipper his wicket
Gayle was bowled off the under-edge by Shaun Pollock for 16 as he attempted an ambitious pull and the former South African captain then had Hinds lbw for 15.
Sarwan made a slow start to his innings, but he and Lara consolidated before the West Indies skipper lost his head and was bowled through the gate by spinner Nicky Boje as he attempted to swing him away over long-on.
West Indies needed 74 off the final 10 overs and Sarwan raised the tempo by driving Boje over mid-off for six and then clearing the ropes again off Jacques Kallis, this time at extra cover.
He and Chanderpaul had brought the asking rate down to 31 off five when Makhaya Ntini gave South Africa hope by bowling Sarwan as he played across the line.
But the issue was effectively settled in the 47th over which cost Pollock 19 as Ricardo Powell hit two successive full tosses over mid-wicket for sixes and Chanderpaul flicked the last ball to fine leg for four.
Gibbs' hundred proved to be in a losing cause
Powell was bowled by Ntini for 16, but only 10 more were needed and Dwayne Bravo kept Chanderpaul company for the final act.
The outcome was particularly tough on Gibbs, who had bounced back from a run of poor form with his 13th one-day century.
He struck a six and nine fours in his 135-ball innings and although Graeme Smith (45) and Jacques Rudolph (46) played useful knocks in support, South Africa's total proved not to be enough.
The defeat was their 11th in 12 matches, with last weekend's nine-wicket thrashing of Bangladesh their sole success.
South Africa: G C Smith (Capt), H H Gibbs, J H Kallis, J A Rudolph, M van Jaarsveld, M V Boucher (Wkt), S M Pollock, L Klusener, N Boje, C K Langeveldt, M Ntini.
West Indies: C H Gayle, W W Hinds, R R Sarwan, B C Lara (Capt), S Chanderpaul, R L Powell, D J J Bravo, C O Browne (Wkt), R O Hinds, I D R Bradshaw, C D Collymore.