Karunaratne half-ton keeps Sri Lanka in control against Bangladesh
Bangladesh finished the first innings 92 runs behind in Sylhet but made some early strikes to keep the match alive.
Karunaratne held firm to score 52 off 101 balls before his dismissal off Shoriful Islam in the day's final session.
Skipper Dhananjaya de Silva, who scored 102 runs in the first innings, was batting on 23 alongside Vishwa Fernando on two.
Debutant Nahid Rana dismissed Nishan Madushka (10) and Kusal Mendis (three).
Spinners Tajiul Islam and Mehidy Hasan Miraz removed Angelo Mathews (22) and Dinesh Chandimal (0) respectively to give Bangladesh some hope, with the tourists teetering on 64-4 before Karunaratne's rally.
Vishwa claimed four wickets in Bangladesh's first innings of 188 while Lahiru Kumara and Kasun Rajitha each took three.
"Fast bowlers did so well, they kept bowling right outside off throughout the day, they got lot of edges," Sri Lankan bowling coach Darushena Gamage told reporters.
Gamage added that the wicket had a" lot of grass layers and uneven bounce".
Nightwatchman Taijul Islam top-scored with a career-best 47 for the hosts, who resumed on 32-3.
Kumara struck with his first ball of the innings when he forced overnight batsman Mahmudul Hasan (12) to edge to de Silva at second slip.
Shahadat Hossain played a few attacking shots before he fell to Kumara in the same manner for 18.
Taijul and Liton Das added 41 runs for the sixth wicket before Kumara struck again.
A late swinger knocked back Liton's middle stump, sending him to the pavilion for 25 after a brief spell at the crease punctuated by four boundaries.'Is what it is'
Taijul was out off Rajitha after nicking the ball behind the stumps to wicketkeeper Kusal Mendis.
Rajitha also removed the last recognised batsman Mehidy Hasan for 11 but Khaled Ahmed and Shoriful Islam managed a 40-run partnership to close out the innings.
"We are obviously disappointed not to have batted for more than 51 overs," Bangladesh batting coach David Hemp told reporters.
"It is a little bit frustrating but it is what it is... If we can get early wickets tomorrow morning, we could be looking at a 250 chase."
Sri Lanka made 280 runs in their first innings on the first day thanks to centuries from de Silva and Kamindu Mendis, who both scored 102.
Sri Lanka have never lost a Test series to Bangladesh.
The second and final match of the series will be played in Chittagong from March 30.