Sri Lanka captain Dimuth Karunaratne won the toss and elected to bat first in the opening test of the two-match series on Sunday.
Experienced batter Dinesh Chandimal has been recalled after missing the series against India in which Sri Lanka lost 2-0.
The tourists have left out left-arm spinner Praveen Jayawickrema, who was one of their most successful bowlers in India series and took seven wickets in the only game he played. Spinning allrounder Ramesh Mendis was selected ahead of him.
Bangladesh was boosted by the return of allrounder Shakib Al Hasan who missed the last two series in New Zealand and South Africa.
The home side dropped Ebadot Hossain, their hero in a first ever test win against New Zealand earlier this year. Offspinner Nayeem Hasan returned to the side after playing his last test against West Indies in February last year.
Before the match a minutes silence was observed at the Zahur Ahmed Chowdhury Stadium in the memory of former Australian test player Andrew Symonds, who died in an auto accident late Saturday night near the northeastern Australian city of Townsville.
Bangladesh: Tamim Iqbal, Mahmudul Hasan, Najmul Hossain, Mominul Haque (captain), Mushfiqur Rahim, Liton Das (wk), Shakib Al Hasan, Nayeem Hasan, Taijul Islam, Shoriful Islam, Khaled Ahmed
Sri Lanka: Dimuth Karunaratne (captain), Oshada Fernando, Kusal Mendis, Angelo Mathews, Dhananjaya de Silva, Dinesh Chandimal, Niroshan Dickwella (wk), Ramesh Mendis, Lasith Embuldeniya, Asitha Fernando, Vishwa Fernando.