One-day international, Karachi: Pakistan 233-2 (48.4 overs) beat Sri Lanka 232-9 by eight wickets
Youhana hit a six and seven fours in his 121-ball innings
Yousuf Youhana made his 10th one-day century as Pakistan defeated Sri Lanka by eight wickets in Karachi.
Youhana finished on 107 not out as he and Shoaib Malik (86) shared an unbroken stand of 200 to see them home on 233-2 with eight balls to spare.
Malik had earlier taken 3-32 and run out Sanath Jayasuriya for 53 as Sri Lanka totalled 232-9.
Pakistan have now won three out of three in the competition following a double over Zimbabwe.
And they are now certain of a place in the final in Lahore on 16 October.
Sri Lanka's score did not look enough, but the exit of both Pakistan openers on the total of 33 offered them a ray of hope.
Yasir Hameed was lbw to Chaminda Vaas for 13 and Salman Butt was caught by Marvan Atapattu off Nuwan Zoyza for 17.
But once Youhana and Malik had established themselves, the home side were able to cruise towards their target with few major alarms.
Youhana was slower than Malik to 50, taking 70 balls compared to to his partner's 60, but only needed 42 more to reach three figures
The task of scoring the winning run fell to Malik, however, and he did so by clipping a ball from Farveez Maharoof to mid-wicket.
Pakistan went into the game with a full strength team as skipper Inzamam-ul-Haq, fit again after a groin strain, Shoaib Akhtar and Abdul Razzaq returned.
Sri Lanka made one change to the side beaten by England at the Champions Trophy as Kaushal Lokurachchi gave them an extra bowling option in place of Saman Jayantha.
Shoaib Akhtar brought Sri Lanka's innings to an end with a wicket
They batted first after winning the toss but soon lost Avishka Gunawardene, who was bowled by Naved-ul-Hasan for one at the start of the second over.
Sanath Jayasuriya (53) and skipper Atapattu (46) put on 109 for the second wicket, but neither was able to go on and play the major innings Sri Lanka needed.
Jayasuriya departed in the 25th over and was soon followed back to the dressing room by Atapattu, who was caught by Inzamam off Malik.
Mahela Jayawardene (18) and Kumar Sangakkara (38) were both bowled by Mohammad Sami for 18 as Sri Lanka declined from 165-3 to 196-7.
Maharoof (15) and Vaas (11) made useful lower order runs but Sri Lanka's total was not enough to put serious pressure on the home side.
Pakistan afterwards confirmed Inzamam was likely to stay as skipper for the forseeable future.
He has already been confirmed in the job for the forthcoming tour to Australia and Pakistan Cricket Board chairman Shaharyar Khan said: "I think he has done a fine job and he has shown good judgement as a leader.
"The other players look up to him which is very important and the team is improving."
Pakistan: Inzamam-ul-Haq (captain), Salman Butt, Yasir Hameed, Shoaib Malik, Yousuf Youhana, Younis Khan, Shahid Afridi, Rana Naved, Abdul Razzaq, Mohammad Sami, Shoaib Akhtar.
Sri Lanka: Marvan Atapattu (captain), Mahela Jayawardene, Sanath Jayasuriya, Kumar Sangakkara, Tillakaratne Dilshan, Avishka Gunawardene, Farveez Maharoof, Chaminda Vaas, Upul Chandana, Nuwan Zoysa, Kaushal Lokuarachchi.