Sanath Jayasuriya (44) and Tillarakaratne Dilshan (20) added to Sri Lanka's first innings total of 299, but the second innings was called to an end after 15 overs when Dilshan was caught behind off Dwayne Bravo.
The touring side started the second day on 46 for one after playing just 18 overs on a rain-hit Saturday.
That was time enough for David Bernard to run out Sanath Jayasuriya (four) with a quick retrieval and throw.
Marvan Attapatu top-scored for the tourists on Sunday with 59. He was bowled by a yorker from 18-year old pacer Jerome Taylor, who then trapped Mahela Jayawardene to return figures of two for 22 in 10 overs and completed a memorable few days by being named in the Test squad on Monday.
Kumar Sangakkara (41) batted confidently on a slow Arnos Vale wicket but was caught by Bernard off Hinds, ending a 91-run stand with Atapattu.
Tail-ender Thilan Thusara Mirando set out to prove his own batting ability, hitting two sixes clean out of the ground and three further boundaries in an unbeaten 34.
The Sri Lankan innings ended when Dharshana Gamage (nine)
Daren Ganga celebrated his call-up to the Test squad on Monday with a workmanlike 54, but was caught at slip from Kausal Lokuarachchi.
Ryan Hinds, who has fallen out of favour with the West Indies selectors, top-scored with 83 and could not hide his frustration when he edged a catch at first slip attempting to hook Dinusha Fernando.
The same bowler then had Carlton Baugh caught behind on 45.
David Mohammed added an unbeaten 33 that included two sixes to carry the President's XI within spitting distance of the Sri Lankan total.
However, off-spinner Thilan Samareweera tore into the tail-end to collect three for 56, and Mirando ended the innings by trapping Taylor lbw and posting two for 43.