Off-spinner Dilruwan Perera finished with five wickets to help Sri Lanka beat Pakistan by 68 runs in the second Test in Dubai on Tuesday and take the series 2-0.
Perera recorded figures of 5-98 as Pakistan, chasing a tough 317 to win, were bowled out for 248 in the second hour of fifth and final day at the Dubai stadium.
Asad Shafiq fought hard during his 112-run knock - his 11th Test hundred - and together with his skipper Sarfraz Ahmed (68) added 173 for the sixth wicket.
However, once their partnership was broken Sri Lanka, having already won the first Test by 21 runs in Abu Dhabi, quickly closed in on victory.
This is Pakistan's first series defeat at their adopted home of the UAE in seven years. They had won five of the previous nine, with four drawn series. This is also Pakistan's first home defeat since losing to South Africa 1-0 in 2007 and only the second whitewash in their history.
Pakistan had looked to the overnight partnership of Shafiq and Ahmed to guide them to the winning target after resuming at 198-5, needing another 119 for victory.
Both Shafiq and Sarfraz had lucky escapes but Perera finally broke the resistance when Pakistan's captain was caught off a miscued sweep at deep fine leg by Nuwan Pradeep.
Shafiq brought up his hundred with a paddled sweep single off Perera and was reprieved on the same score when Dimuth Karunaratne dropped a low catch off the same bowler.
Perera then completed his five-wicket haul when he trapped Mohammad Amir - unable to bowl in the second innings with a shin injury - leg before for four, bringing Sri Lanka within three wickets of victory.
Yasir Shah was cleaned up by Rangana Herath and Shafiq was the ninth man out when he edged paceman Suranga Lakmal to slip where Kusal Mendis took a low diving catch to end Pakistan's hopes of an upset win.
Shafiq's 253-minute knock had 10 boundaries but he again failed to help Pakistan cross the line, just like his 137 in the lost cause against Australia at Brisbane last year.
Victory was brought up when Rangana Herath had number 10 Wahab Riaz caught gleefully by skipper Dinesh Chandimal for one.