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 in Hyderabad, on Sunday.
Still needing another 356 runs for victory, the only possible option left for the Bangladesh batsmen is to bat for as long as possible and look to salvage a draw, on the fifth and final day.
India opted against enforcing the follow-on after they had bowled out Bangladesh for 388, thereby taking a sizeable 299-run first innings lead. They batted aggressively before declaring their second innings on 159 for four to leave Bangladesh with a stiff task of playing out the remaining four sessions.
Despite the benign nature of the track which is though doing tricks on the odd occasion, 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, to his right.
With the momentum broken, Ashwin had Mominul deceived by the drift. The batsman pushed at a delivery, which turned a shade away to take the outside edge and present Rahane with another catch, leaving Bangladesh reeling at 75 for three.
It was a memorable day for Ashwin, who created a world record as he became the first bowler in the history of Test cricket to complete 250 wickets. By reaching the 250-wicket mark in 45 matches, Ashwin has also surpassed Australian bowling legend Dennis Lillee's record, who achieved the feat in 48 matches.
Ashwin, who took two for 34 in 16 overs, 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 not out), along with Mahmudullah Riyadh (9 not out) and captain Mushfiqur Rahim, who hit a century in the first innings, will need to shoulder the majority of the burden on the final day to save their team from defeat.
Earlier, 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.
Pujara smashed 54 off 58 balls while skipper Virat Kohli contributed 38 off only 40 deliveries as India wasted little time in getting the runs in the post-lunch session.
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.
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 over the fine leg fence 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 for boundaries. 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's bowling.
Ajinkya Rahane, having regained confidence after his 82 in the first innings, played selflessly towards the team's cause as he hit a few big shots to score 25 from 31 balls, laced 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 at deep midwicket, while the next was dispatched over long-on fence for a six.
Pujara, in the meanwhile, completed his second half century of the match in 57 balls to continue his rich vein of form in the ongoing home season.
Bangladesh skipper Mushfiqur Rahim had 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 for six declared.
However, with the Indian bowlers having sent down 127.5 overs, skipper Kohli decided against enforcing the follow-on.
With the Bangladesh tail showing stomach for a fight and frustrate the Indian bowlers, Ashwin's wait for the world record ended when Rahim's attempted 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 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 on his overnight score, with an incoming delivery that reversed in the first over of the day.
At 322 for seven, India may have fancied hopes of mopping up the tail quickly, but Taijul Islam hung on bravely despite being subject to a barrage of bouncers.
In fact, Mushfiqur, at times, took the risk of taking a single off the first or second delivery exposing Taijul to Ishant, who was getting the ball to rear from back of length.
Taijul was uncomfortable while facing the short balls and had two streaky boundaries before he tried to fend a rising delivery from Umesh in an ugly manner to give Wriddhiman a simple catch.
Taskin Ahmed (8) turned out to be a stodgy customer, adding 39 runs in nearly 11 overs, with Rahim opening up after the completion of his century.
Jadeja finally got rid of Taskin with Rahane taking a catch at slips and Ashwin ended the innings as he claimed his 250th scalp after being frustrated for the better part of the innings.