Zampa bowled 10 wicketless overs for 113 - equalling the worst figures in an ODI, held by fellow Australian Mick Lewis - as Heinrich Klaasen propelled South Africa to their third-highest total.
Klaasen smashed 174 off just 83 balls as the hosts posted 416 for five at Centurion to level the five-match series 2-2, having lost the opening two.
Of greater concern for Australia will be the injury to opener Head, who retired hurt three balls after being hit on the left hand by Gerald Coetzee.
Australia coach Andrew McDonald confirmed x-rays had shown a fracture with the World Cup just three weeks away.
McDonald said: "He's going to go in for some more scans tomorrow to work out the detail of (the injury) and then we'll work out the management from there. How long that (recovery) time frame is, we're yet to determine."
Australia already have injury concerns over Pat Cummins, Steve Smith, Mitchell Starc and Glenn Maxwell, while Cameron Green was concussed in the first game of the series.
Klaasen described his assault, which included 13 fours and 13 sixes, as "one of my better ones".
He was caught on the boundary off the final ball of the innings, ending a stand of 222 with David Miller who smashed an unbeaten 82 from 45. Rassie van der Dussen also hit 65.
Michael Neser was the only Australian bowler to go for under seven runs an over, Zampa conceding nine of the 20 sixes hit by the hosts
Australia's reply never really got going, wicketkeeper Alex Carey the only batter to face more than 25 balls but he was last man out for 99 as Australia were dismissed for 252.