South Africa elected to bat after winning the toss and, after a spluttering start, reached 191 for three wickets.
But a swashbuckling, record-breaking reply by Malan and Jos Buttler helped England to their target with 14 balls to spare.
Clean sweep! 😁 🙌 #SAvENG https://t.co/TYgC8ZJczX
— England Cricket (@englandcricket) 1606853400000
The tourists made 192-1 with Malan one shy of his century and Buttler 67 not out in a T20 international record 167-run second-wicket partnership, which came off 90 balls.
“It’s exceedingly pleasing to win a game in such conditions as it builds confidence in the changing room,” said England captain Eoin Morgan.
South Africa, easily beaten by England in their opening two matches in the Cape, were again slow to get going and had scored 64-3 in the 10th over when Rassie van der Dussen joined Faf du Plessis at the crease.
The pair then added an unbeaten 127 runs as Van der Dussen scored a career T20 high of 74 with the experienced Du Plessis adding 52 not out. They smacked 84 runs off the final five overs to set a testing target for the tourists.
🌍 #⃣ 1⃣ batsman in 🌍 #⃣ 1⃣ team 😍 https://t.co/zHagkgupQ5
— England Cricket (@englandcricket) 1606856402000
But England, after losing Jason Roy for 16 in their fourth over, set about a poor home attack with some venom, hammering the bowling to all parts of the ground including 40 runs off the 11th and 12th overs alone.
Malan, who had scored 55 runs on Sunday in Paarl to help England clinch the series, continued where he left off at the smaller Newlands, reaching his half century off 26 balls.
He reached 98 with a four that tied the scores and then appeared unaware that he was one shy of his ton as he failed to attempt a second run despite a fielding fumble.
“I didn’t calculate that too well. Maybe I must go back to maths class,” he joked afterwards.
England and South Africa will now play three One Day Internationals, starting at Newlands on Friday.