Dawid Malan’s 78 from 44 balls - the highest score by an England player on T20 debut - was the bedrock of England’s 181-8 at the SSE Swalec Stadium.
South Africa had kept the three-game series alive by winning a Taunton thriller on Friday.
But the target proved beyond them this time as the Proteas ended on 162-7, England taking the series 2-1.
South Africa captain AB de Villiers gave the visitors brief hope of chasing down England with a typically bludgeoning 35 from 19 balls.
But when De Villiers became a rather memorable first international victim for leg-spinner Mason Crane at the end of the 11th over, South Africa were 82-4 and England were on their way to victory.
England had enjoyed early success as South Africa’s reply started in familiar fashion.
Tom Curran, just as he had done at Taunton, removed Reeza Hendricks in his first over before Chris Morris pulled Chris Jordan straight to Alex Hales on the square leg boundary.
JJ Smuts soon skied Liam Plunkett to fine leg, but South Africa were always in the game when De Villiers was at the wicket.
However, after hitting two sixes, he fell inches from a third as Hales again showed excellent spatial awareness to stay inside the rope and collect the catch.
Crane’s understandable excitement at his first international wicket was also matched by its importance in the contest.
Mangaliso Mohsele (36) and Andile Phehlukwayo (27 not out) offered spirited resistance late on, but England kept tight lines with Jordan (3-31) and Curran (2-22) the pick of the bowlers.
England had earlier appeared to be heading for a 200-plus total before losing momentum and wickets at the end of their innings.
But 181 was still a more than useful total on a day when skipper Eoin Morgan had chosen to rest himself and blood new talent.
Jos Buttler took over the captaincy but it was Malan who was to become the headline act.
The Middlesex left-hander had pressed his case for inclusion with scores of 125 not out and 84 for the England Lions against South Africa A earlier this month.
And although Malan turns 30 at the start of September, this was a performance which suggested he might be around for some time yet.
There was no sign of nerves after the early loss of Jason Roy for eight as Malan hoisted Morris over midwicket for six from only his second ball in international cricket.
No Proteas’ bowler was spared punishment: Andile Phehlukwayo and Dane Paterson were despatched for boundaries and the first ball he faced from Imran Tahir was hit straight past the leg-spinner for four.
Even Morne Morkel, sending down 90 miles per hour deliveries, was in the firing line with Malan striking him out of the ground and towards the River Taff.
Malan’s half-century came from 31 balls as he shared a second-wicket partnership of 105 with Hales, who was dropped on nine when Phehlukwayo spilled the simplest of chances.
Having required treatment for a bang on the knee, Hales made 36 from 28 balls and Buttler joined the supporting cast with 31.
England were guilty of carelessness in the closing stages, losing their last five wickets for 15 runs, as Paterson recorded best T20 figures of 4-32.
But England still got home with something to spare and get a morale boost ahead of the forthcoming Test series between the two countries.