England 192 for 1 (Malan 99*, Buttler 67*) beat South Africa 191 for 3 (van der Dussen 74*, du Plessis 52*) by nine wickets
An unbroken century stand between Rassie van der Dussen and Faf du Plessis threatened to salvage some South African pride. But England proved just too good again as Malan and Buttler brushed aside their efforts with an unbeaten 167-run partnership of their own, the highest second-wicket stand in T20Is.
Player of the Match for the second time in a row, and Player of the Series, Malan was unbeaten on 99 from just 47 deliveries, while Buttler was not out with 67 off 46 to hand England a nine-wicket victory with 14 balls to spare and see their side pass Australia at the top of the ICC rankings.
Van der Dussen and du Plessis came together with their side stuttering on 64 for 3 but piled on 127 off 66 deliveries, including 84 runs off the last five overs, to set England a target of 192 when no side had previously made 190 batting second at Newlands. Van der Dussen's unbeaten on 74, off just 32 balls, was his highest score in T20Is.
South Africa were without fast bowler Kagiso Rabada due to a groin strain and their bowlers lacked penetration as Malan and Buttler dominated the attack.
South Africa looked in danger of becoming bogged down in their innings, but Reeza Hendricks' dismissal brought together du Plessis and van der Dussen and it didn't take them too long to find their stride.
Van der Dussen struck the first of his five sixes, pulling Ben Stokes over deep square leg to double his score to 12 but it was just the beginning. Tom Curran's second over, the 16th of the innings, went for 16, book-ended by two giant sixes to du Plessis.
Van der Dussen then helped himself to 22 runs off Jofra Archer in the next over, bringing up his 50 off just 23 balls with South Africa looking far healthier at 145 for 3.
Du Plessis brought up his fifty off 37 balls with four threaded off Sam Curran wide of third man. It was his second half-century of the series following his 58 at the same venue in the first match.
England's fielding was not at its best, and on the last ball of the innings Sam Curran caught van der Dussen on the boundary but threw the ball in thinking - possibly mistakenly - that he was going to touch the rope, but not hard enough for Archer to grab a relay catch. It didn't matter as by then the damage was done - or so it seemed.
That man Malan (and Buttler too)
Malan, Player of the Match as England sealed an unassailable 2-0 series lead at Paarl on Sunday, bettered himself and further stamped his authority as the world's leading batsman in this format.
He needed the help of DRS to overturn an lbw decision on 16 when Lungi Ngidi's delivery was found to have pitched outside leg. Malan was the beneficiary again when, returning for a second run, he found himself well short as Temba Bavuma fired the ball in brilliantly to Quinton de Kock, who broke the stumps with his gloves but the ball lodged in his midriff.
Around those moments, however, Malan was dominant, thrashing five sixes, including a monstrous 94-metre effort down the ground off a Ngidi slower ball, and 11 fours. Buttler was also in fine form, striking five sixes.
With five overs remaining - and nine wickets in hand - England needed just 27 runs and with both batsmen roaring they made the task look simple.
Jordan on top
Chris Jordan came out on top once again in a battle with de Kock, whose brisk 17 off 12 deliveries could not erase the sense that he is shouldering a heavy burden as opener, captain and wicketkeeper.
In doing so, Jordan took the outright lead as England's leading wicket-taker in T20Is with 66, having drawn level with Stuart Broad in the previous match.
De Kock had scored 11 of the 12 runs to come off Archer's second over, including a four followed immediately by a huge six that landed in the rubble of a construction site beyond deep backward square. But when Jordan entered the attack in the next over, he struck with his fourth ball as de Kock miscued to mid-off and Tom Curran swallowed a straightforward catch. It was the third time this series that Jordan had dismissed de Kock.
Stokes again, and again
Stokes was unused with the ball in the first match and went wicketless in the second, conceding 14 off just two overs, but he lived up to his usual billing as the man who makes things happen when he came on in the eighth over and struck with his sixth ball.
Bavuma had made a bright start, reaching 32 off 26 balls before Stokes struck to have him caught by Jordan at mid-off. Stokes was the can-do man once more in his next over when he had Hendricks caught behind for 13.
Stokes was injured later on, cutting his left hand as he ran into the boundary boards after trying to intercept a van der Dussen blow and caught a sharp edge near the adverting hoardings. He left the field but was later seen patched up and smiling, albeit with some concern over his ability to hold the bat as England faced a hefty run chase.