Victory saw World Twenty20 champions England, who headed to Sri Lanka yesterday to defend the title they won in the Caribbean two years ago, square this three-match series at 1-1 with one no result.
Most of Buttler’s runs, in a match reduced by rain to 11 overs per side, came in a costly ninth over worth 32 from left-arm quick Wayne Parnell.
England made 118 for five — with man-of-the-match Buttler facing just 10 balls including three sixes and two fours. South Africa, who were never up with the rate, finished on 90 for five.
“It’s nice it came off, it was one of those days,” said Buttler, whose previous England best was 13.