The South Africans are just one loss away from a five-match series whitewash.
The batting department continued to struggle as they were once again restricted to a small total by the hosts, who won the toss and opted to field.
Hanco Olivier and Matthew Christensen’s dry-run continued with both dispatched by the day’s star bowler, Luke Wood for three and one respectively.
Janneman Malan (51) once again put his hand up, scoring a half-century and sharing a 44-run third-wicket partnership with Kabelo Sekhukhune (22) before Ed Barnard put an end to the latter in the 18th over.
Malan and Marques Ackerman teamed up for a 41-run, fourth-wicket stand that saw Ackerman also score a half-century, but it was soon disturbed by Karl Carver’s dismissal of Malan at the start of the 30th over.
After Ackerman’s run out for 58, South Africa saw another mini-collapse with no one getting further than Stefan Klopper’s 18.
Wood finished with impressive figures of 4/16 in 7.2 overs as South Africa were bundled out for 186 runs in 48.2 overs.
The hosts made a strong start to their reply with openers Will Rhodes and Haseeb Hammed sharing an 86-run partnership to set their side on course for victory.
Rhodes (50) was the only batsman to reach a half-century, while Hameed and Tom Alsop added 32 and 37 respectively.
A strong finish by the fifth-wicket partnership of Aneurin Donald (18 not out) and Barnard (17 not out) that contributed the last 32 runs required for victory.
Bowlers, Klopper and Brandon Glover took two wickets each.
The fifth and final match will take place at Derby on Friday.