in South Africa's six wicket defeat by England at The Oval on Saturday, the Proteas' first game of the tournament.
At Canterbury, Kallis faced 147 balls including one six and 14 fours.
In reply to South Africa's 272 for five, Zimbabwe could only manage 226 for nine, Travis Friend top scoring with 82.
South Africa all-rounder Andrew Hall made a dashing 56 and then weighed in with three for 38 in his contribution to victory which means all three teams now have a win apiece.
Dion Ebrahim and Friend compiled a second-wicket stand of 109 in 132 balls, Zimbabwe's best for any wicket against South Africa in a one-day international.
Both men started cautiously before hitting authoritative boundaries.
Friend, on 42, however, was dropped by South Africa captain Graeme Smith, running back from mid-off, off the bowling of medium-pacer Alan Dawson.
Friend, whose fifty came off 60 balls, including five fours, then promptly lofted left-arm spinner Nicky Boje for a straight six.
But Boje broke the partnership when he had Ebrahim, on 40 chipping straight to Smith at midwicket, having faced 68 balls including five fours.
Friend continued in aggressive fashion, lofting Boje for another six, and with 20 overs to go Zimbabwe needed another 140 runs.
But on 82 Friend was bowled by medium-pacer Hall having faced 93 balls including two sixes and five fours. At 146 for three in the 34th over Zimbabwe were unable to maintain their impetus.
Hall had already justified his promotion up the order, after his eight-ball unbeaten 23 on Saturday, by the way he partnered Kallis in a fourth-wicket stand of 91 in 88 balls.
Hall faced just 51 balls including three sixes and three fours as he revived South Africa's innings.
Fast bowler Douglas Hondo, in for Gary Brent after missing Zimbabwe's four-wicket series opening win against England on Thursday with a knee injury, took two for 29.
One ball before the end of the innings Zimbabwe pace bowler Andy Blignaut was ordered out of the attack by the umpires for bowling his second full toss above waste height.
The result might have been different had not 27-year-old Kallis been given five lives during his innings.
He would have been run out on 16 or 35 if either of Zimbabwe captain Heath Streak's throws had hit.
Kallis was also dropped, off a low caught and bowled chance by Hondo, on 21 and, on 60, bowler Grant Flower failed to gather Sean Ervine's accurate throw with Kallis short of safety.
And in the last over he was dropped on the boundary by Hondo on 114 off Blignaut.
The next series match sees England against Zimbabwe at Headingley on Tuesday.