A solid opening stand between Dimuth Karunaratne (85*) and Lahiru Thirimanne (58) headlined Sri Lanka's strong response. They were 229/3 at the end of day three, trailing by 312 runs.
In the first session, Bangladesh declared their innings on 541/7 after valuable fifties from Liton Das (50) and Mushfiqur Rahim (68*).
In reply, Sri Lanka got off to a steady start. Thirimanne was nervy at the beginning, surviving a couple of close calls. But he and Karunaratne managed to survive and take the team through to lunch without losing any wickets.
After lunch, both openers picked up the pace. The opening partnership helped push Sri Lanka's score past the 100-run mark, during the course of which both batsmen brought up their respective fifties.
Sri Lanka's opening stand was dealt a huge blow after Thirimanne was trapped lbw by Mehidy Hasan at the stroke of tea.
Oshada Fernando came in to bat at No.3, however, he failed to capitalize on his good start as he fell to Taskin Ahmed for a score of 20. At 157/2, Angelo Mathews joined Karunaratne in the middle, looking to build a solid foundation to tackle the daunting lead set by Bangladesh.
Mathews did not hold back, as he played the aggressor in the partnership. His efforts to revive Sri Lanka's innings came to an end after he was bowled by Taijul Islam.
Oshada Fernando and Angelo Mathews began well but failed to convert their good starts into big scores and they departed in the 20s.
Karunaratne then found support in the form of Dhananjaya de Silva (26*) as they saw Sri Lanka to stumps at 229/3.
Earlier, Bangladesh resumed the third day at 474//4 with Mushfiqur and Liton at the crease. The batsman picked up where they left off, adding a quick-fire 37 runs to their day two partnership. Rahim brought up his half-century – a calculated knock; Liton, on the other hand, registered up his half-century in a much quicker fashion, taking only 67 balls. The partnership helped push Bangladesh's total past the 500-run mark.
Vishwa Fernando got the much-needed breakthrough for Sri Lanka, picking up the key wicket of Liton, and putting an end to the threatening 87-run fifth-wicket stand.
From there, Mehidy Hasan perished to Suranga Lakmal, scoring just three runs. Then, Taskin Ahmed became Fernando's fourth victim, after nicking the ball to Niroshan Dickwella. Bangladesh finally declared at 541/7 with 30 minutes to go in the first session.