Rajkot: India captain Virat Kohli remained unbeaten on a defiant 49 in a tense final session to deny England victory and claim a draw in the opening Test of the five-match series on Sunday.
England captain Alastair Cook notched up his 30th Test hundred and declared his team's second innings on 260 for three in the second session, to set India an improbable target of 310.
Leg-spinner Adil Rashid, who picked up four wickets in the first innings, took another three as the hosts were reduced to 71 for four shortly after tea.
With the spinners getting the ball to turn sharply and bounce on the wearing pitch, Cook surrounded India's batsmen with close-in fielders in an effort to force a victory.
Kohli, India's best batsman, then frustrated the touring side with a fifth-wicket stand of 47 with Ravichandran Ashwin, who made 32.
The pair batted out over 15 overs to take India closer to the draw before Ashwin drove left-arm spinner Zafar Ansari straight to Joe Root in the covers.
Wicketkeeper Wriddhiman Saha did not last long as India were reduced to 132 for six with enough overs still left in the match for England to force a win.
But Kohli added another crucial unbeaten stand of 40 in 10 overs for the seventh wicket with local boy Ravindra Jadeja, who remained unbeaten on 32, to deny the tourists.
The hosts reached 172 for six when the captains shook hands for the match to end in a draw.
The result, however, could have swung in England's favour had they managed to hold on to their catches.
Vijay, India's highest scorer in the first innings with 126, was dropped on 13 by Ansari, who failed to hold on to a powerful return catch. The batsman went on to make 31.
Ansari was the unlucky bowler again in his next over when Stuart Broad dropped a much easier catch from first-innings centurion Pujara at point with the batsman on 10.
Pujara was dismissed on l8, given out leg before off Rashid with replays showing the ball had pitched outside the leg stump and the decision would have been overturned on review.
Cook hits ton
Earlier, Cook brought up his sixth hundred against India, with five of them having come while touring the country.
Resuming on his overnight score of 46, the left-hander looked unperturbed against the turning ball and was equally comfortable against India's pacemen, who got the ball to reverse swing.
Cook hit 13 boundaries in his knock of 130, which came to an end when he was caught off Ashwin.
Mishra broke England's best opening stand in India with his third ball of the day when the 19-year-old Haseeb Hammed (82) hit a flighted delivery straight back to the spinner.
Mishra also picked up Root (4) in his second over of the morning.
England promoted the hard-hitting Stokes up the order to score quick runs and the left-hander hit 29 in as many deliveries in a 68-run stand with Cook for the third wicket.
England 1st innings: 537 (B. Stokes 128, J. Root 124, M. Ali 117)
India 1st innings: 488 (M. Vijay 126, C. Pujara 124, R. Ashwin 70; A. Rashid 4-114)
England 2nd innings:
A. Cook c Jadeja b R. Ashwin 130
H. Hameed c&b Mishra 82
J. Root c Saha b Mishra 4
B. Stokes not out 29
Extras (b-11, lb-3, nb-1) 15
Total (for 3 wickets decl, 75.3 overs) 260
Fall of wickets: 1-180, 2-192, 3-260
Did not bat: B. Duckett, M. Ali, J. Bairstow, C. Woakes, Z. Ansari, A. Rashid, S. Broad
Bowling: M. Shami 11-1-29-0, R. Jadeja 15-1-47-0, R. Ashwin 23.3-4-63-1, U. Yadav 13-2-47-0, A. Mishra 13-0-60-2 (nb-1)
India 2nd innings:
M. Vijay c Hameed b Rashid 31
G. Gambhir c Root b Woakes 0
C. Pujara lbw b Rashid 18
V. Kohli not out 49
A. Rahane b Ali 1
R. Ashwin c Root b Ansari 32
W. Saha c & b Rashid 9
R. Jadeja not out 32
Total (for 6 wickets, 52.3 overs) 172
Fall of wickets: 1-0, 2-47, 3-68, 4-71, 5-118, 6-132
Did not bat: M. Shami, U. Yadav, A. Mishra
Bowling: S. Broad 3-2-8-0, C. Woakes 4-1-6-1, Z. Ansari 8-1-41-1, M. Ali 19-5-47-1, A. Rashid 14.3-1-64-3, B. Stokes 2-1-1-0, J. Root 2-0-5-0
Umpires: K. Dharmasena & C. Gaffaney
TV umpire: Rod Tucker
Match referee: Ranjan Madugalle