Silva's maiden ton puts Sri Lanka in command
Sri Lanka's Kaushal Silva plays a shot during the second day of the first Test against Bangladesh in Dhaka on January 28, 2014 - by Munir Uz Zaman
Silva scored 139 as the tourists reached 375-5 by stumps at the Sher-e-Bangla stadium, a lead of 143 over Bangladesh's first innings total of 232 with five wickets in hand.
The right-hander put on 118 for the first wicket with Dimuth Karunaratne (53) and then teamed up with veteran Kumar Sangakkara (75) to add a further 155 runs for the second wicket.
Sri Lanka will resume on Wednesday looking to grab a really sizeable lead and have the hosts on the ropes in the first match of the two-Test series.
Bangladesh's bowlers, who managed just one wicket in the morning session on the even-paced pitch, claimed four in the post-tea period to slow Sri Lanka's run spree.
Left-arm spinner Shakib Al Hasan was the pick of the bowlers with three for 94, including the vital wicket of Silva.
Sri Lanka, who started the day on 60-0, had moved to 118 when left-hander Karunaratne was snapped up at short cover off Shakib just before lunch.
After a barren post-lunch period, Bangladesh removed Silva and Sangakkara in quick succession in the final session. They claimed two more wickets as Sri Lanka slipped from a comfortable 273-1 to 375-5.
Mahela Jayawardene was unbeaten on 42 when play was called off soon after the dismissal of nightwatchman Suranga Lakmal in the final over, from Sohag Gazi.
The 27-year-old Silva reached the three-figure mark in his seventh Test after making 95 and 58 in the Dubai Test against Pakistan earlier this month.
But he was lucky to achieve the landmark after being dropped by Bangladesh captain Mushfiqur Rahim behind the stumps and again by Shamsur Rahman early in his innings.
Silva had another reprieve before lunch when he was caught behind off a no-ball from seamer Al-Amin Hossain.
He moved from 85 to 97 with a flurry of boundaries and then reached his century by pulling Shakib to the fine-leg fence for another four.
Sangakkara looked set for his 34th Test hundred until he edged a catch to the slips off Al-Amin, who was finally rewarded for his hard work in unresponsive conditions.
Silva, who hit 16 boundaries and two sixes, was dismissed five overs later when he was trapped leg-before by Shakib.
Dinesh Chandimal helped Jayawardene add 72 for the fourth wicket before being bowled by Shakib for 40.
The two Test matches will be followed by two Twenty20 matches and three one-day internationals.