The visitors reached 200-8 at stumps on day two in their second innings. The batting effort came after debutant spinner Akila Dananjaya led an inspirational attack to dismiss Bangladesh for 110 in the morning session.
Silva was batting on 58, his second fifty in the game, which came amid a regular fall of wickets on what seemed a difficult batting pitch at the Sher-e-Bangla National Stadium.
The highest successful run-chase at the ground is England's 209-1 against the hosts in 2010.
"I don't think it is possible to get more than 300 runs on this wicket. It is common sense but cricket is a funny game," Silva told reporters.
"We bowled them out for 100 and we wanted to get more than 300-plus runs actually.
"We passed it," added Silva, playing just his third Test since his debut in India last year.
Suranga Lakmal, who claimed three wickets with his pace bowling, was keeping Silva company on seven as the islanders kept building on their sizable first-innings lead of 112.
Paceman Mustafizur Rahman took three wickets while spinners Taijul Islam and Mehedi Hasan Miraz claimed two each.
Opener Kusal Mendis was out early after veteran left-arm spinner Abdur Razzak trapped the batsman leg-before for seven.
Left-handed opener Dimuth Karunaratne, who made 32, and Dhananjaya de Silva, who hit 28, got starts but failed to convert them into bigger scores.
Silva got to the grind building crucial partnerships including a 51-run fifth-wicket stand with skipper Dinesh Chandimal, who made 30.
Bangladesh's Mehedi was hoping against hope for a turnaround.
"Anything can happen in cricket. You can lose wickets for zero or one or two runs. It can happen in the first innings," the allrounder said.
"But if we can learn from our mistakes from the first innings then I believe we can perform well in the second innings and can win the match."
Earlier Bangladesh, who started the day on 56-4 in response to Sri Lanka's 222, faltered against Dananjaya's mystery spin that rattled the hosts' middle and lower-order.
Dananjaya, who is playing his first Test after 19 one-day internationals and nine Twenty20 games, returning impressive figures of 3-20.
The 24-year-old Dananjaya has off-spin as his stock delivery but can can surprise the batsmen with leg-spin googly and carrom balls.
The first Test ended in a draw in Chittagong.
(This story has not been edited by Business Standard staff and is auto-generated from a syndicated feed.)