Youhana finished on an unbeaten 107 and Malik was 86 not out as Pakistan put their Asia Cup defeat against Sri Lanka two months ago behind them.
Sri Lanka, who won the toss on Wednesday, were derailed mid-way through their innings before reaching 232-9 in their allotted 50 overs, with 53 by Sanath Jayasuriya and 46 by skipper Marvan Atapattu.
Pakistan, who beat Zimbabwe in the previous two matches of the series, qualify for the October 16 final with 16 points while Zimbabwe and Sri Lanka have one point each.
Youhana and Malik joined forces to blunt the tourists' attack with an unbroken stand of exactly 200 after Pakistan lost Yasir Butt (13) and Salman Butt (17) inside 12 overs.
Youhana, when he reached 66, became the sixth Pakistani batsmen to reach 6,000 One-day runs. He achieved the feat in his 178th match to join his captain Inzamam-ul-Haq, Javed Miandad, Saeed Anwar, Salim Malik and Ejaz Ahmed.
He hit seven boundaries and a six in his tenth One-day hundred, which came off 112 balls.
Malik, who earlier chipped in with 3-32, punched three boundaries and a six to help his vice-captain demolish the tourists.
Sri Lanka looked set for a big score when Jayasuriya and Atapattu atoned for the early loss of Avishka Gunawardene with a second-wicket stand of 109 before Pakistan hit back.
Left-hander Jayasuriya was particularly severe on Shoaib, hitting him for a superb six in his first over which cost 14. But Malik, brought in as sixth bowler, swiftly ran out Jayasuriya during his follow-through to halt Sri Lanka.
Jayasuriya's 53 came off 85 balls with five boundaries and a six.
Malik's fourth over brought the dismissal of Atapattu, who hit a looping delivery straight to Inzamam after making 46.
The off-spinner then chipped in with the wickets of Mahela Jayawardene (18) and Tillakaratne Dilshan (4) in his eighth and 10th over to restrict the tourists to 177-5 by the 41st over.
Spearhead Mohammad Sami returned for his second spell to bowl Sri Lanka's last hope Kumar Sangakkara for 38. The tourists managed just 72 runs in the last 15 overs and lost seven wickets.
Pakistan were boosted by the return of their captain Inzamam who missed the three-wicket win over Zimbabwe at Peshawar on Sunday due to a groin injury.
Also returned to the fold were express paceman Shoaib Akhtar and all-rounder Abdul Razzaq, who were both rested in the last match.
Pakistan now meet Sri Lanka in Lahore in a match which will be inconsequential for them.
Sri Lanka square off with Zimbabwe in two back-to-back matches in Rawalpindi on October 9 and 11.