Bangladesh inched their way towards an astonishing victory after they decimated India's batting line-up while defending a small target in the second and final Test in Mirpur on Saturday.
Off-spinner Mehidy Hasan took 3-12 to leave the visitors struggling at 45-4, still needing 100 more chasing a victory target of 145.
The Tigers gave themselves a fighting chance to level the series after Liton Das scored a counter-attacking fifty while their lower order chipped in with priceless contributions as they went from 113-6 to 231 in the second innings.
Having conceded a first-innings lead of 87, Bangladesh's top order failed but they added 118 for the last four wickets after Das went on the attack with talienders for company.
Das added 46 runs with Nurul Hasan (31) and 67 with Taskin Ahmed, who remained not out on 31, before fast bowler Mohammad Siraj breached his defence.
However, the top order batsman had luck on his side. Kohli twice dropped Das in the slip off Patel and Ashwin respectively.
Spin all-rounder Patel claimed 3-68 but had barely settled down in the dressing room before he had to walk out again after India lost two quick wickets.
On a turning track with variable bounce, captain Shakib Al Hasan began with spin from both ends and nearly had his India counterpart KL Rahul caught at short leg in the first over of the innings.
Shakib did not have to wait long though and, in his next over, he had Rahul caught behind.
Mehidy then changed the course of the match. The off-spinner dismissed both Cheteshwar Pujara and Shubman Gill stumped and had Kohli caught at short leg for one to push India closer towards defeat.
Patel, promoted to No 4, was batting on 26 at stumps with nightwatchman Jaydev Unadkat on three at the other end.
If India do end up on the losing side, it will hurt their chances of making it to the World Test Championship final in June 2023.
India are currently second in the points table but are only marginally ahead of third-placed South Africa and Sri Lanka, who are fourth.