Half-centuries by captain Misbah-ul-Haq and Umar Akmal and a lively spell of bowling from paceman Aizaz Cheema helped Pakistan to a six-wicket win over Sri Lanka in the Asia Cup on Thursday.
Sri Lanka's defeat was their second in a row while Pakistan are now all but guaranteed a place in the final.
Misbah and Akmal shared a stand of 152 for the fourth wicket to lead Pakistan safely to their target in 39.5 overs after Cheema claimed four for 43 as Sri Lanka were bowled out for a mediocre 188.
Sri Lanka created early pressure when paceman Suranga Lakmal took two wickets and leg-spinner Seekkuge Prasanna picked up one to leave Pakistan struggling on 33 for three.
Misbah and Akmal then steadied the ship and gradually put Pakistan in control as they recorded a second win in the four-nation tournament, plus a bonus point for reaching their target with more than 10 overs to spare.
Akmal fell for 77 with his side three runs from victory. He tried to finish the match off with a six but ended up offering a catch to Upul Tharanga at mid-wicket off Farveez Maharoof.
The attacking right-hander, dropped earlier by Lahiru Thirimanne at backward square leg, struck seven fours and two sixes.
Misbah, a cool customer at the other end, hit 72 not out with nine fours and a six.
Hammad Azam, playing his first match in the tournament, completed the victory by hitting Prasanna for four through long off.
"It was a much-needed performance from the middle order," Misbah told reporters.
"Most of our batsmen struggled during last month's England series," he added, referring to his team's 4-0 drubbing. "I think this performance is really a confidence builder."
Earlier, Cheema ripped the heart out of Sri Lanka's top-order before off-spinner Saeed Ajmal mopped up the tail with three for 27.
Cheema dismissed openers Mahela Jayawardene (12) and Tillakaratne Dilshan (20) as Sri Lanka slumped to 65 for four.
Kumar Sangakkara (71) and Tharanga (57) gave the bowlers something to defend by sharing a fifth-wicket partnership of 96 before Ajmal triggered a collapse which saw them lose their last six wickets for 27 runs.
"I thought that probably 250 on this track would have been a very competitive score," said skipper Jayawardene. "We didn't get anywhere near that.
"It's tough to get bowlers to come back and do something magical. I think they bowled really well and gave everything they had."
India are set to join Pakistan in the final if they beat hosts Bangladesh on Friday.