The West Indies advanced to the final of the one-day tri-series by beating South Africa by 100 runs on Friday, led by a century from Darren Bravo and three wickets by paceman Shannon Gabriel.
The hosts will now meet Australia in the tournament final at the same venue on Sunday.
Left-hander Bravo made 102, including 12 fours and four sixes off 103 balls, as his third one-day ton lifted West Indies from early trouble at 21-4 to 285 all out off 49.5 overs.
He shared a record fifth wicket stand of 156 with Kieron Pollard, who chimed in with 62 off 71 balls, including seven fours and two sixes.
South Africa’s chase was undermined by the fiery Gabriel as the visitors were bowled out for 185 in 46 overs.
Spin ace Sunil Narine supported well with 3-38 and all-rounder Carlos Brathwaite took 2-39.
Gabriel, bowling consistently near 150km per hour, provided the crucial early scalps of Quinton de Kock, Faf du Plessis and A.B. de Villiers as the Proteas slumped to 28-3.
De Kock chopped an inside edge to the wicket-keeper Denesh Ramdin, du Plessis was lbw and de Villiers edged a drive.
Narine soon claimed Hashim Amla lbw and captain Jason Holder had J.P. Duminy fending to gully at 51-5.
Farhaan Behariden top-scored with 35, Wayne Parnell contributed 28 and there was a late flourish by the last pair of Morne Morkel (32 not out) and Imran Tahir (29) but there was no way back for South Africa.
Earlier, the tourists dominated the first half hour with left-arm seamer Parnell claiming the early scalp of Andre Fletcher to a wicket-keeper’s catch.
But it was the 21-year-old Rabada, who took 3-31, that really silenced the home crowd as the hosts top order slumped.