Perera's innings of 135 was his highest ODI score and Seekkuge Prasanna also produced a personal best at this level in making 95.
Sri Lanka, as in their 76-run win in the first of this two-match series at Malahide on Thursday, were sent into bat by Ireland captain William Porterfield.
Prasanna, promoted to a pinch-hitting role at number three following a first-wicket stand of 147 between Perera and Danuska Gunathilaka, took full advantage to leave behind his previous best score of 42 with a superb display of hitting.
Perera reached his second ODI hundred from 105 balls with 10 fours and two sixes and added another 35 runs before he was caught at mid-wicket off paceman Tim Murtagh, who plays for English county side Middlesex.
Also Read
Even after Perera was dismissed, to leave Sri Lanka 309 for three with eight overs remaining, the tourists were on course for 400 with Dasun Shanaka and the recalled Farveez Maharoof in the middle.
The 23-year-old seamer, in only his second international, was Ireland's most impressive bowler, finishing with two for 52.
By contrast Boyd Rankin, in his first home series for five years after appearing for England, finished with one for 86 from his 10 overs. Rankin struck as Ireland clawed back some ground by taking four wickets for 13 runs in the last three overs, but by then the damage had long since been done.