jamuna sports desk: Bangladesh lead by 129 runs in first innings, after Mosaddek Hossain was stumped off Rangana Herath, falling for 75 runs on his Test debut.
Before that, they lost the remaining three wickets inside 18.1 overs in the third session.
Mosaddek and Mehedi had, after tea, batted steadily in the 131-run seventh-wicket partnership.
There was only one boundary in the 12 overs they batted after the break, ending with Mehedi falling leg-before to Herath after making 24 off 50 balls.
Next ball, Mustafizur was trapped leg-before too, giving Herath 1,000 first-class wickets, become the second man after Muttiah Muralidharan to achieve the feat from his country.
The day belonged to Bangladesh as Shakib and Mushfiqur Rahim continued their sixth-wicket stand from the second evening, extending it to 90 runs before the captain was bowled by Suranga Lakmal's full inswinger soon after the hosts took the new ball.
But Bangladesh continued to put together partnerships in the second session, the next being the 131-run stand for the seventh.
During this partnership the visitors went past Sri Lanka's 338, making it only the second time ever, after Galle 2013, that Bangladesh took a first-innings lead away from home.
Shakib, after getting a third reprieve on 67 and some more close misses, reached his fifth Test century with a lot of proficiency for most of his innings.
As the session rolled towards the tea break, few minutes before the interval, he holed out at mid-on for 116, having struck 10 fours in his 159-ball stay.