The Proteas were in trouble at 3-29, chasing a seemingly modest 119 for victory.
But opener Kallis, returning to international duty after being rested from the drawn one-day series between the two countries, made 48 not out of 44 balls with seven fours.
Together with left-hander JP Duminy (47 not out) he shared an unbroken stand of 90 in 91 deliveries as the Proteas, who won with an over to spare, went 1-0 up in a three-match series ahead of this month's World Twenty20 in Sri Lanka.
Ultimately England's 7-118, their third lowest total in this format, did not give the bowlers enough to defend.
"We were 20 or 30 short, we didn't adapt to the condition of the pitch or bat to our average," England captain Stuart Broad told Sky Sports.
"We got a little bit stuck with the spin. We played nicely through the first six overs, but struggled in the middle period.
England can expect to face plenty of spin on receptive pitches in Sri Lanka but Broad, like Kallis returning after being rested from the one-dayers, had no undue worries about his team's ability to play slow bowling.
"It's not too much of a concern, we need to adapt and learn from this game," he said ahead of Monday's second match in Manchester.
South Africa captain AB de Villiers praised his attack, with man-of-the-match Dale Steyn taking one for 13 in four overs and spinners Robin Peterson and Johan Botha sharing four wickets, for setting up this victory.
"The bowling was brilliant, led by Dale Steyn. He bowled with a lot of pace and looked like taking wickets throughout," said de Villiers.
"We never allowed England to get momentum."
Steyn added: "I can live with bowling one-over spells. It's a lot easier than Test matches."
At 7-85, England were in danger of posting their worst Twenty20 total before an unbroken stand of 33 in 27 balls between captain Stuart Broad and Graeme Swann, who both finished on 18 not out, gave them a foothold.
No England batsman made more than opener Craig Kieswetter's 25.