Lasith Malinga's fiery spell upstaged Shahid Afridi's blazing century as Sri Lanka beat Pakistan by 16 runs in the opening match of the Asia Cup, in Dambulla, on Tuesday.
Set 243 for victory, Pakistan looked on course after Afridi smashed 109, but Malinga thwarted all their plans by claiming five for 34.
Afridi, battling a leg injury which he sustained while batting in the middle, hit eight boundaries and seven sixes in his 76-ball knock to rally Pakistan after a bad start. But his dismissal in the 41st over saw Pakistan lose their way and they were bowled out for 226 in 47 overs.
Malinga gave Sri Lanka the perfect start when he castled Salman Butt's stumps in his first over for a duck and followed it up with the wicket of debutant Umar Amin (7) a few overs later.
Pakistan struggled to 23 for two after ten overs with Shahzaib Hasan hitting the only boundary during that period in the ninth over.
Angelo Mathews, who scored an unbeaten half-century, then proved his worth with the ball, claiming Shoaib Malik (8) and Hasan (11) in consecutive overs to peg Pakistan back further.
But Afridi launched a brilliant counter-attack to lead Pakistan's fightback in the contest, as he started with back-to-back sixes off Farveez Maharoof in the 15th over.
He was particularly severe on veteran spinner Muttiah Muralitharan, who he smashed for four sixes in as many overs, hitting for 51 runs in 25 deliveries, with the help of five sixes and two boundaries.
The Pakistan skipper raced to his half-century off just 33 balls in style, slamming Muralitharan over long-on for a huge six.
Towards the end of his innings, the right-hander started cramping up; it eventually started affecting his strokeplay as well. But he somehow managed to get his century, off 68 balls, with a boundary as he cut a short delivery from Mathews through point, the first time he crossed the three-figure mark in five years.
It was Muralitharan, who had the last laugh when he got the wicket of Afridi, caught behind by wicketkeeper Sangakkara with a delivery that spun sharply and also bounced a lot.
At that stage, Pakistan were sitting comfortably, needing 38 to win from the last nine overs with three wickets in hand.
But Malinga came back for his final spell and destroyed all hopes Pakistan may have harboured. The pacer took the wickets of Mohammad Aamer (5) and Shoaib Akhtar (1) in his ninth over and then bowled Mohammad Asif for 1 with a fast swinging yorker to finish off things; Abdul Razzaq was stranded on 26.
Earlier, Mahela Jayawardene and Mathews scored half-centuries to help Sri Lanka post a competitive 242 for nine in their 50 overs.
Pakistan speedster Shoaib Akhtar made a superb comeback to international cricket, claiming three for 41 in his ten overs. Akhtar, playing international cricket after a long gap of 13 months, troubled the hosts early on with his sharp pace and bounce and started with an early wicket.
Mathews helped Sri Lanka finish on a high, scoring an unbeaten 55 from 61 balls, while Jayawardene played a composed innings of 54 from 64 deliveries after the hosts had elected to bat first.
Upul Tharanga, who scored 11 from 16 balls, was the first wicket to fall, caught at first slip trying to uppercut a short delivery from Akhtar. Tillakaratne Dilshan made 18 from 25 balls before he was brilliantly caught by debutant Umar Amin at covers off Mohammad Asif.
Captain Kumar Sangakkara helped Sri Lanka recover from those early wickets with a composed knock of 42 from 63 balls before he danced down the wicket to Afridi but chipped it straight to Umar Akmal at midwicket.
He added 83 runs in 102 deliveries for the third wicket with Jayawardene, who was trapped leg before wicket by Shoaib Malik. However, replays showed that the right-hander had got an inside edge as he attempted a reverse sweep against the off-spinner.
Thilan Samaraweera fell in the next over, caught at point off Abdul Razzaq for 17.
Akhtar then crippled the Lankans with a two-wicket burst. First Chamara Kapugedara was caught at point for 2 and Farvez Maharaoof was caught behind for 1.
Mohammad Aamer took two wickets towards the end, those of Nuwan Kulasekara (14) and Lasith Malinga (16), to finish with two for 57.