A dominant India remained in pursuit of a comprehensive victory after Bangladesh finished the penultimate day at a precarious 103 for three, chasing a mammoth target of 459 in the one-off Test here.
Rather than looking at the improbable task of scoring the remaining 356 runs, the visitors will try to stay afloat for minimum 90 overs on the fifth and final day and save the game.
Despite the benign nature of the track, India's bowling attack has firepower to get the remaining seven wickets.
Ajinkya Rahane's sharp one-handed catch off Ravindra Jadeja to dismiss a well-set Soumya Sarkar (42) put India in the driver's seat after the visitors looked comfortable during the post-tea session as they started their second innings.
Sarkar, along with Mominul Haque (27), had added 60 runs for the second wicket before the lanky left-hander poked at a Jadeja delivery that didn't turn much. The resultant edge was dipping down but Rahane showed fantastic reflexes to pull off a one-handed catch.
With the momentum broken, Ashwin then had Mominul deceived by the drift. The batsman pushed at a delivery, which turned a shade away to take the leading edge and present Rahane with another catch, leaving Bangladesh reeling at 75 for three.
Ashwin (2/34 in 16 overs), who completed the fastest 250 Test wickets, gave a better account of himself in the second innings by getting the turn and the drift. Being given the new ball helped him get some bounce off the pitch as well.
The pitch is still not offering a great deal of turn to the spinners, and had no hand in the wickets that Bangladesh lost in the second innings.
Seasoned Shakib Al Hasan (21 batting), along with Mahmudullah Riyadh (9 batting) and Mushfiqur Rahim, will need to bring their 'A' game to the fore in order to save the game.
In the post-lunch session, Cheteshwar Pujara scored a quickfire half-century as India declared their second innings at 159 for four at the stroke of tea, leaving Bangladesh with a daunting target.
Pujara smashed 54 off 58 balls while skipper Virat Kohli contributed 38 off only 40 deliveries after having bowled out Bangladesh for 388 in their first innings.
A cushion of 299 was good enough for the hosts to go for the jugular even though openers Murali Vijay (7) and KL Rahul (10) were dismissed in quick succession by Taskin Ahmed (2/43).
But Pujara and Kohli upped the ante with an aim to have a a go at Bangladesh on the fourth day itself.
During their 67-run partnership, Pujara, surprisingly, was the aggressor even as Kohli scored at a quick pace.
Using Taskin's pace to his advantage, Pujara hooked him behind the square for a six. Kohli was not one to be left behind as he lofted Shakib effortlessly for a six over long-on.
Pujara drove left-arm spinner Taijul Islam through covers and another glorious shot followed through same region off Taskin. A firm push through mid-on was a treat to watch.
Kohli also got a boundary with a cover drive off Taskin and the fifty partnership was achieved at run-a-ball.
Just when Kohli was about to shift gears, a poor shot led to his downfall with Mahmudullah Riyadh taking a smart catch at short mid-wicket off Shakib Al Hasan's bowling. He hit two fours and a six.
Rahane, having regained confidence after his first innings 82, followed the team diktat and hit 25 off 31 balls with a couple of boundaries and a six off Mehedi Hasan Miraz.
He was bowled trying to hit Shakib out of the park.
With declaration in mind, Jadeja was promoted up the order to consolidate the lead before tea.
Jadeja was dropped by Miraz off the second delivery he faced and the ball went for a boundary, while the next was dispatched over long-on fence.
Pujara, in the meanwhile, completed his second half century of the match in 57 balls. In all he hit six boundaries and a six.
Earlier, Bangladesh skipper Mushfiqur Rahim scored a gritty hundred as the visitors managed 388 in their first innings with Ashwin completing his coveted milestone of 250 wickets.
Rahim scored 127 as Bangladesh fell 299 runs short of India's first innings score of 687/6 declared.
However, with the Indian bowlers having sent down 127.5 overs, skipper Kohli decided against enforcing follow-on.
With the Bangladesh tail showing stomach for a fight and frustrate the Indian bowlers, Ashwin's (2/98 in 28.5 overs) wait for the world record ended when Mushfiqur's paddle sweep was caught down the leg by Wriddhiman Saha.
During his fifth Test hundred, Mushfiqur played 262 balls, hitting 16 fours and two sixes.
The century came off a flick, which Ishant Sharma misfielded, and the ball crossed the boundary ropes, much to the batsman's elation.
The two other shots that he played in the morning included a hooked six off Ishant, which he wasn't in control and a swat off Ashwin over the ropes in the cow corner region.
The skipper should be given due credit for the manner in which he batted with the tail after young Mehedi Hasan Miraz (51) was cleaned up by Bhuvneshwar Kumar (1/52) on his overnight score, with an incoming delivery that reversed.--PTI