Birmingham - India captain Virat Kohli once more kept England at bay after Sam Curran's maiden Test fifty gave the hosts' hope of an improbable win in the series opener at Edgbaston on Friday.
India were 110 for five in their second innings at stumps on the third day, still needing a further 84 runs to reach a victory target of 194 that would put them 1-0 up in a five-match series.
Kohli, whose superb first-innings 149 was the star batsman's maiden Test century in England, was 43 not out and Dinesh Karthik unbeaten on 18.
England's 1,000th Test had threatened to end in an embarrassing defeat with more than two days remaining as they collapsed to 87 for seven in their second innings.
But Curran, in just his second match at this level, struck a dashing 63 to take England to 180 all out.
That left India with a potentially awkward chase.
It was also 20 runs more than their their highest fourth-innings Test-winning total in England of 174 for six at The Oval in 1971 during their first victory in a Test on English soil.
The 20-year-old No 8 Curran's impressive batting effort came just a day after the Surrey left-arm swing bowler had taken Test-best figures of four for 74.
"I had goosebumps listening to the Barmy Army chants and that first hour tomorrow (Saturday) is going to be crucial," Curran told Sky Sports. "If we can bowl well and take a couple up top, we will hopefully win."
Off-spinner Ravichandran Ashwin ran through England's top order before fast bowler Ishant Sharma took three wickets in an over either en route to five for 51 in 13 overs.
England desperately required early wickets and Stuart Broad obliged by removing openers Murali Vijay and Shikhar Dhawan to leave India 22 for two.
That got the Edgbaston crowd roaring on the bowlers in a manner reminiscent of the raucous cheers that accompanied England legend Ian Botham's celebrated match-winning spell of five for one in 28 balls in the 1981 Ashes Test at the Birmingham ground.
India needed someone to stay with Kohli but after Ajinkya Rahane and Ashwin both fell cheaply, they were 78 for five.
England resumed on nine for one after Ashwin had bowled Alastair Cook for a duck on Thursday and it was not long on Friday before the spinner had Keaton Jennings, the hosts' other left-handed opener, taken at second slip.
Ashwin struck again when England captain Joe Root was well caught low down at leg-slip by Rahul off a genuine glance.
Root, who top-scored with 80 in England's first innings, put his hand on his head in despair after falling for 14.
Middlesex left-hander Dawid Malan arguably 'owed' England a big score after dropping Kohli in the slips on 21 and 51.
But he fell for 20 when, squared up by Sharma's superb outswinger from around the wicket, he was caught in the gully.
Sharma then had Bairstow taken by at first slip and two balls later he dismissed Ben Stokes (six) via a fine low catch by Kohli at third slip off what became the last ball before lunch.
Two balls afterwards, Sharma had Jos Buttler caught behind and England were 87 for seven.
"It feels nice to represent your country and come abroad and take five wickets in an innings, especially the second one," said Sharma, who credited a spell with English county side Sussex this season for getting him in shape.
"Playing county cricket helped me a lot," he added. "The good thing was I had overs behind me."
But Curran, after a couple of fortunate edges and being dropped in the slips on 13, found his form.
He struck Ashwin for a magnificent straight six and next ball drove him to long-on for four.
Curran, who bats left-handed as well as bowls, brought up his maiden Test fifty off a mere 54 balls in supreme style by lofting Sharma over extra-cover for six.
He was eventually last man out on the stroke of tea, caught behind off Umesh Yadav.