Pakistan had taken an unassailable 3-1 lead in the series in Colombo, but an overwhelming 165-run win on Sunday offered some consolation for the hosts.
Sri Lanka batted first and posted an imposing 368 for four from their 50 overs with Kusal Perera top scoring with 116 from 109 balls, his innings including nine fours and four sixes.
Perera’s fellow opener Tillakaratne Dilshan weighed in with 62 before Angelo Mathews and Milinda Siriwardana kept the momentum going with rapid unbeaten knocks of 70 and 52 respectively.
Dilshan’s 62 meant he became the 11th player to reach 10,000 runs in one-day cricket – the fourth Sri Lankan to reach the mark, following Kumar Sangakkara, Sanath Jayasuriya and Mahela Jayawardene.
Pakistan raced to 51 in their reply before their first wicket fell but they tumbled steadily thereafter, with their first eight batsmen reaching double figures and four passing 20 but nobody scoring more than Mohammad Hafeez’s 37.
Sachithra Senanayake was the pick of Sri Lanka’s bowlers with figures of three for 39.