Bavuma’s innings of 144 runs ended with a catch as the ninth batsman. His previous best was 113.
Pacer Alzari Joseph and spinner Akil Hossain took 3 wickets each for West Indies.
The first ODI of the series was abandoned due to rain. The third and final ODI will be held in Potchefstroom on Tuesday.
Short score:
West Indies: 335/8 in 50 overs (King 30, Meyers 36, Brooks 0, Hope 128*, Pooran 39, Powell 46, Holder 15, Akil 2, Smith 1, Joseph 13*; Ngidi 10-0-76-0, Jansen 10 (-0-77-1, Coetzee. 10-0-57-3, Fortan 10-0-57-2, Shamsi 10-0-62-2)
South Africa: 287 in 41.4 overs (de Kock 48, Bavuma 144, Rickelton 14, Georgi 27, von Dassen 8, Stubbs 6, Jansen 17, Fortan 1, Coetzee 1, Ngidi 12*, Shamsi 0; Joseph 8.4-0- 53-3, Holder 7-1-45-0, Meyers 6-0-40-1, Akil 10-0-59-3, Karaiah 5-0-47-1, Smith 5-0-40-1)
fruit: West Indies won by 48 runs
series: West Indies lead 1-0 in the three-match series
Man of the match: Shei Hope