Former captain Habibul Bashar was caught behind off Farveez Maharoof for 18 as the tourists moved from their lunch score of 48-1 to 53-2 by tea at the Asgiriya stadium.
Opener Shahriar Nafees was unbeaten on 20 and Rajin Saleh had yet to get off the mark.
Incessant rain over Kandy, a popular Sri Lankan hill resort, allowed only 12 overs to be bowled in the morning session and another 5.4 overs when play resumed an hour late after lunch.
Sri Lanka are chasing a 3-0 series sweep after winning the previous two Tests in Colombo by innings margins.
Sri Lankan captain Mahela Jayawardene won his third successive toss in the series and did not hesitate to ask Bangladesh to take first strike again.
The tourists were dismissed for 89 on the opening day of the first Test and were then skittled out for their lowest total of 62 at the start of the second Test.
But Bangladesh's batsmen refused to surrender despite losing opener Javed Omar in the third over of the morning, trapped leg-before by fast bowler Lasith Malinga for eight.
Nafees and Bashar put on 40 for the second wicket between the rain breaks until Maharoof forced Bashar to glove a catch to wicket-keeper Prasanna Jayawardene.
Sri Lanka made three changes from the side that clinched the series in the second Test at the P. Sara stadium in Colombo last week.
The hosts recalled opener Upul Tharanga and new-ball bowlers Maharoof and Sujeewa de Silva on a seamer-friendly wicket.
The trio replaced Chaminda Vaas, who has returned to his English county Middlesex, opener Malinda Warnapura and fast bowler Dilhara Fernando.
Bangladesh brought in middle-order batsman Tushar Imran and left-arm seamer Syed Rasel in place of Mehrab Hossain and Mohammad Sharif.