The last session of the day would be best remembered for the heroics of Ashwin (83 batting; 151b 13x4) who batted resolutely for 176 minutes to save his team the embarrassment of losing the match inside four days as India reached 239/9 at stumps at the Eden Gardens.
With the last wicket pair Ashwin and Pragyan Ojha (3 batting) in the middle, the hosts have taken a 32 run lead over the visitors whose first innings ended at a mammoth 523 earlier in the day.
The Indian duo have so far added 42 of 63 balls, and save a miracle, England are poised to coast to their second straight win after Mumbai and take an unassailable 2-1 lead in the four match series. India had triumphed in the opening Test in Ahmedabad.
Steve Finn (3-37) was the most successful English bowler followed by James Anderson (2/38) and Graeme Swann(2-70). Monty Panesar got one wicket.
India, though had started the day on the right note by polishing off the England tail taking four quick wickets in just under five overs, to restrict the tourists to a 207 run first innings lead.
Left arm orthodox spinner Ojha induced Swann 21 (46b 3x4) to edge one to Sehwag at slip in the very first over of the day while Khan got Matt Prior 41 (49b 6x4 1x6) caught behind in the next over.
Offie Ashwin then came in to remove James Anderson (9) caught at slip, and Panesar trapped in front in successive balls to end the England innings in just 4.3 overs.
Ojha (4/142) was the most successful bowler for India, while Ashwin (3/183) also contributed well.
Indian openers Virender Sehwag and Gautam Gambhir started off the second innings in right earnest racing to 86 runs at the lunch break, but the script changed dramatically in the next session as the home side's batsman came to the middle only to go back soon.
The match was virtually decided in the post lunch session when six Indian wickets fell for a paltry 59 runs.
The procession began in the very first ball after lunch when Swann got one to turn in sharply that clipped the top of the stumps sending Sehwag (49; 57b 7x4) for the long walk back.
There descended an uneasy calm in the stadium but the 25000 odd crowd hardly had any idea of the horror show that was to unfold. Gambhir went for a non-existent single and Ian Bell's direct throw caught Cheteswar Pujara (8) short of his ground despite a desperate dive.
In the very first ball of the next over by Swann, there was a controversy after the ball turned and bounced before going into the hands of Jonathan Trott in the slips who took what he thought was a brilliant low catch sending his team mates to celebrate wildly.
With batsman Gambhir standing in his crease, the matter was referred to the third umpire who ruled not out. The replays suggested the southpaw indeed had not edged the ball.
However, Gambhir (40; 104b, 4x4 1x6) could not stay for long as he edged a Steve Finn delivery behind the wicket in the next over.
Sachin Tendulkar (5), who seemed to have returned to form with a half century in the first innings, failed this time with Swann making the master batsman edge one to Trott waiting at the slip.
Yuvraj Singh (11), skipper Mahendra Singh Dhoni (0) also got out soon, and India were precariously placed at 122/6, still needing 85 runs to make England bat again.
English spinners Panesar and Swann looked far more threatening and menacing than their Indian counterparts while the pace duo of Finn and Anderson also used the conditions better getting the ball to reverse swing.
England began the last session with early wickets as Virat Kohli (20, 60b 3x4) chased a Steve Finn delivery wide of the stumps only to get caught behind. Finn came back with his next over to trap Zaheer Khan in front for a duck.
With Ishant Sharma at the other end, Ashwin tried to keep at the bay the inevitable defeat as they stitched together a partnership of 38 runs and took the total to 197, still 10 runs behind the English total of 523.
Sharma (10, 53b 2x4), however, was castled by Panesar for his first wicket of the innings.
As the day meandered towards the end, Ashwin hit consecutive fours of Swann to notch up his third test fifty and also got India past 207 thereby avoiding a rare innings defeat on home soil.
Mumbai Indians won the toss and decided to bat against Sunrisers Hyderabad in their Indian Premier League match here Wednesday.