This third, consecutive win gives the hosts an unassailable 3-0 lead in the five-match series.
England once again won the toss and batted first. Hameed was the leading run scorer with his innings lasting 128 deliveries, including 14 fours and three sixes, at a strike rate of 97.65.
His second-wicket partnership with Tom Alsop (57) enabled England to recover from captain, Will Rhodes’ (22) demise at the hands of South Africa’s skipper, Sibonelo Makhanya (3/48) in the 10th over.
The pair put on 144 runs between them to move the innings forward before Alsop was bowled by Andile Phehlukwayo (2/60).
Aiden Brooker had a good game, taking the wickets of middle order batsmen Ed Barnard (two), Joe Clarke (nine) and Aneurin Donald (eight), all trapped lbw, to finish with 3/48.
Makhanya returned to dismiss Rob Jones and Matthew Fisher for five and one as the hosts posted 295/8 in their fifty overs.
For South Africa, Marques Ackerman (67) and Janneman Malan (52) were the two standout performers, but the rest of the line-up continued to struggle to either get off the mark or convert 30s to half-centuries and beyond.
England bowlers, Rhodes (3/47) and Karl Carver (3/67), took three wickets each, while Fisher took two wickets for 41 to bowl South Africa out for 256.
The fourth ODI will be played at Leicester on Wednesday.