South Africa lead the five-match series 4-0.
Resting a number of key players, namely Lizelle Lee and Marizanne Kapp, du Preez's 65* from 91 balls ticked things along for the tourists in spite of the early dismissals of Laura Wolvaardt (1) and Lara Goodall (9).
In reply, Rashada Williams' 42 and Deandra Dottin's 22 provided the only resistance, as five of South Africa's bowlers claimed scalps in their 35-run victory.
West Indies won the toss and elected to field on a slow surface, and made early inroads through Aaliyah Alleyne (1/28) and Hayley Matthews (1/33). Tazmin Brits (30) and Dane van Niekerk (20) fell after building early starts to Anisa Mohammed (2/26) and Cherry-Ann Fraser (1/33) respectively.
Du Preez entered at 57/3 at the end of the 20th over, and struck five boundaries through the rest of the innings, nursing the tourists to a defendable total with the help of 'keeper Sinalo Jafta.
Du Preez may have made things look easy in the middle, with West Indies top order struggling to lift the tempo through the Powerplay overs. Williams' 42 included four boundaries, but she struggled to find a partner, falling as the sixth wicket of the innings.
Williams was run out as van Niekerk and Jafta combined in a smart piece of fielding, capping off a happy day in the field with the leg-spinner also taking 3/23 of eight overs.
Van Niekerk's efforts were well supported by Masabata Klaas (2/25), with little resistance from the hosts in their chase. A fifth-wicket stand of 41 between Williams and Kycia Knight (15) kept the West Indies alive, though a collapse of 5/33 sealed things for the tourists.
The last match of the Proteas tour of the West Indies will be played on Saturday (IST).
Brief scores: South Africa Women 185/6 in 50 overs (M du Preez 65, T Brits 30; A Mohammed 2/26) beat West Indies Women 150/9 in 50 overs (R Williams 42; D Van Niekerk 3/23, M Klaas 2/25) by 35 runs.