Sri Lanka are eyeing their first Test win in more than a year after claiming a first innings lead of 242 against Bangladesh.
The hosts struggled to 2-17 at stumps in their second innings on Saturday but were still leading by a substantial 259 runs after the third day of the second Test.
Praveen Jayawickrama was the hosts' star, becoming the fifth Sri Lankan to claim a five-wicket haul on debut as he finished with 6-92.
The left-arm spinner triggered a sensational collapse as Bangladesh were bowled out for 251 after having been 3-214 at one stage.
The wicket offered some assistance for Sri Lanka's spinners and Jayawickrama cleverly mixed up his deliveries to trouble Bangladesh batsmen.
Suranga Lakmal and Ramesh Mendis also took two wickets apiece as Bangladesh were bowled out in 83 overs.
"The advice that I got from the seniors," the 22-year-old Jayawickrama said, "was to not to be rattled when the batsmen go after the bowling.
"They wanted me to bowl lots of dot balls and create the pressure and that worked today."
Tamim Iqbal, who had been dismissed for 90 in the first Test, yet again fell eight runs short of a well-deserved hundred for Bangladesh when Jayawickrama foxed him with a ball that did not turn much.
Mominul Haque (49) and Mushfiqur Rahim (40) fought back but both batsmen were dismissed either side of tea as Sri Lanka wrestled back the initiative.
Jayawickrama claimed his fifth wicket when he trapped Mehidy Hasan leg before wicket for 16.
He follows Kosala Kuruppuarachchi, Upul Chandana, Akila Dananjaya and Lasith Embuldeniya as the only Sri Lankans to take a debut five-for.
"Really happy with the effort to take six wickets on my debut, but a lot of work is left to be done over the next two days and I am looking forward to the challenge," Jayawickrama said.
With two full days left and a massive first innings lead, Sri Lanka opted not to enforce the follow-on.