Malan’s 76 saw England set the Sri Lankans a target of 181 for victory but they lost wickets at regular intervals, with David Willey claiming 3-27 en route to an 89-run win.
With just one fifty in his last seven innings, Malan, the world No. 1-ranked T20 batsman, sparkled in a knock containing five fours and four sixes after being promoted to open the batting.
Jason Roy’s tight hamstring led to a batting reshuffle and Malan and Jonny Bairstow, who made 51 off 43 deliveries, put on 105 in 11.4 overs, before Dushmantha Chameera’s career-best 4-17 restricted England to 180-6.
Sri Lanka ultimately capitulated to 91 all out in 18.5 overs and it lost the series 3-0.
In what has been a recurrent theme of the series, Sri Lanka lacked scoring options and England were collectively excellent with the ball, with Sam Curran also collecting two wickets.
Sri Lanka started the day by winning the toss for the third time and this time handed over to Bairstow and Malan after electing to field.
Malan was shoulder-barged to the floor by Binura Fernando while attempting a quick single and while there were no cross words between them, the England batsman clipped the left-arm seamer off his toes for the first six.
Isuru Udana had a forgettable introduction, sending down four wides in a 10-ball over as England racked up 48 in the powerplay, with Bairstow mixing some agricultural strokes with more authoritative drives.
Bairstow went to a 41-ball fifty before playing around Udana’s yorker to be bowled as Sri Lanka made a belated breakthrough in the 12th over, but Malan reached his half-century from only 30 deliveries, his 12th 50-plus score in just 27 T20 innings.
Malan then belted Wanindu Hasaranga for two towering leg-side sixes in a 15th over that yielded 18 runs, but from a position of 143-1, England lost five wickets in 23 legal balls as thoughts of a 200-plus total vanished.
It was a masterclass in death bowling from Chameera as he varied his pace and lengths to bamboozle several England batsmen in a mini-collapse, but a 181 target was always likely to be daunting for a side that made 129 and 111 at Sophia Gardens, where Sri Lanka found boundaries hard to come by.
While Danushka Gunathilaka caressed the first ball of the reply through cover for four, David Willey had his revenge immediately afterwards when an edge was pouched by Malan at second slip.
Chris Woakes, in for the rested Mark Wood, had his first T20 wicket since November 2015 when Kusal Perera’s leading edge was taken by Liam Livingstone, running in from deep midwicket to take a low, diving catch. Sri Lanka lurched to 29-3 in the fifth over when Kusal Mendis tentatively nicked off to Willey.
From the preceding ball, Mendis deposited Willey over the rope, while Oshada Fernando did likewise to Jordan but it was a frenetic stay from Sri Lanka’s No. 3, who was eventually put out of his misery for 19 from 27 balls when a leading edge off Curran looped to gully.
Dasun Shanaka was run out following a smart pick up and flat throw from Billings at long-on, with the writing on the wall in the afternoon sunshine by this stage.
They avoided setting a new benchmark for the lowest T20 score in their history - which remains 82 against India in February 2016 - but any hope of a surprise victory had long since vanished.
Additional reporting by AP.