Shahid Afridi took four wickets and Misbah-ul-Haq notched a second successive half century as Pakistan upstaged Sri Lanka in a highly-charged World Cup Group A match by 11 runs on Saturday.
Afridi, who became the 11th player to take 300 wickets in ODIs, finished with 4-34 to help Pakistan defend a 278-run target, as they restricted Sri Lanka to 266-9 in 50 overs for their second win in the tournament.
Captain Afridi, who recorded Pakistan's best bowling figures of 5-16 in all World Cup matches in the 205-run win against Kenya, reached his 300-wicket career landmark in his 314th match by dismissing Kumar Sangakkara for 49.
Chamara Silva, who made a 78-ball 57, gave Pakistan a scare with a 40-run stand with Angelo Mathews (18) before the 1992 champions held their nerve to win.
The win gave Pakistan four points from two matches and top spot in the table.
"That was a big game and the boys knew how big it was but I think the way Misbah-ul-Haq (83) and Younis Khan (72) played their beautiful innings, it was very mature cricket from those guys," said captain Afridi.
"I think the way we played is a message for other teams that we will come harder and harder game by game."
Sri Lanka skipper Sangakkara admitted they lost wickets at crucial times.
"Any defeat is tough but there are quite a few positives to take. I think we bowled pretty well on a flat deck. Unfortunately we lost wickets at the wrong times," he said.
At a ground which traditionally favours the team batting first, Sri Lanka just failed to better the highest run-chase here, registered by India when they chased 270 against England in the 2002 Champions Trophy.
It was 30-year-old Afridi who kept Pakistan on track by bowling dangerous opener Tillakaratne Dilshan (41) and Sangakkara before having Thilan Samaraweera (one) stumped and Mathews caught in the deep.
Pakistan could have finished the match earlier had wicket-keeper Kamran Akmal not missed stumping Sangakkara on two occasions off spinner Abdur Rehman while Rehman also dropped a simple chance off Silva.
Sri Lanka had raced to 76 without loss by the 15th over before losing four wickets in the space of 20 runs.
Pakistan were earlier set on course for a big total by in-form Misbah-ul-Haq, who finished with an unbeaten 83 and Younis Khan (72) who added 108 during a fourth-wicket stand of 108.
With Pakistan looking set for a 300-plus total, Sri Lanka's bowlers, especially Muttiah Muralitharan, kept a tight line and length, only allowing Pakistan 36 runs in the five-over batting power-play.
The wily off-spinner, who finished with 1-35 off his 10 overs, conceded just five runs in his two overs with only three fielders outside the circle.
Misbah hit six boundaries during his 91-ball knock.
Pakistan, who won the toss and batted, lost Ahmed Shahzad (13) in the sixth over, before Mohammad Hafeez (32) and Kamran Akmal (39) steadied the innings during their second wicket stand of 48.
Hafeez opened up, hitting paceman Nuwan Kulasekara for a well swept six, but a crazy run out accounted for his downfall when he swept Muralitharan to backward square-leg without noticing Kamran running down to his end.
Wicketkeeper Kumar Sangakkara's throw went over the bowler's head but Hafeez, leaving his crease late, had no time to recover.
Hafeez hit four boundaries and six during his 31-ball knock.
Kamran, who hit five boundaries in his 48 balls, was stumped off Rangana Herath who finished with 2-46.
Younis top-edged Herath in the 41st over, and was smartly caught by Jayawardene after hitting four boundaries during his sedate 76-ball innings.
Pakistan now play Canada on March 3, while Sri Lanka, who now have two points in as many games, meet Kenya on Tuesday.