Perera made 111 off 99 at Premadasa Stadium in Colombo on Friday in a century partnership with Kusal Mendis (43) and another of 97 with Dimuth Karunaratne (36).
But the hosts failed to make the most of the strong base as the Bangladesh bowlers kept the batsmen in check in the death overs.
Sri Lanka, however, remained on top of the contest thanks to Angelo Mathews’ 48 off 52.
Sent in to field first after losing the toss, Bangladesh bowlers could not make inroads despite recalled pacer Shafiul Islam taking opener Avishka Fernando out in the third over as captain Karunaratne continued with Perera.
Shafiul also took the wickets of Thisara Perera and Dhananjaya de Silva by the end of the innings, but conceded 62 runs in 9 overs.
Mustafizur Rahman secured two wickets but bled 75 runs in 10 overs.
Rubel Hossain, who gave away 31 runs in his first 4 overs, compensated by taking the wicket of Mendis and finally ending with an economy rate of 6.
Opening batsman Soumya Sarkar, who has been shining with the ball as well recently, also took one wicket, the significant one of Perera, in exchange for 17 in 5 overs.