England turned around the second day of the final Test after seeing Gautam Gambhir and Rahul Dravid put on a 314 second wicket stand. India were bowled out for 453.
But a three-wicket haul from off-spinner Graeme Swann - followed by Andrew Flintoff's first success of the match - reduced India to 388 for six by mid-afternoon of the second day.
Resuming on 179 for one, Gambhir and Dravid extended their partnership to establish India's second-wicket record against England - and their second-highest for any wicket.
But just as they both seemed set to accelerate and power India to a daunting total, they fell in a four-over spell from Swann - who followed up by also claiming the prized wicket of Sachin Tendulkar.
Both of India's overnight batsman progressed to individual landmarks during an extended opening session, which began half-an-hour earlier to make up for time lost to bad light on the opening day and yielded 123 runs in 33 overs.
Former India captain Dravid, who resumed overnight on 65, was the first to reach his milestone with a clip off his legs for a single off James Anderson to bring up his 26th Test century.
It was Dravid's first century for 20 Test innings and should end the growing pressure on him for his place prompted by his recent loss of form at this level.
Gambhir reached his first landmark shortly before lunch when he progressed to 142 with a two off Paul Collingwood's first over of the series, reaching 1,000 Test runs in 2008 in only eight matches.
But India's second-highest stand for any wicket against England was finally broken when Gambhir attempted to hit Swann over the top and gave a looping catch to Alastair Cook at point.
Gambhir's superb 179 included 25 fours and a six and ensured England failed to build on their early success yesterday when they had removed Virender Sehwag - their only wicket in 252 overs, including the final day in Chennai.
Just four overs later, Dravid - who had progressed to 136 - fell in similar manner when he also tried to hit Swann over the top but mis-hit the shot high in the air for Monty Panesar to take a well-judged catch at mid-off.
Tendulkar, whose brilliant unbeaten century in Chennai had inspired India's six-wicket victory, lasted just six overs before attempting to sweep Swann and falling lbw for 11.
Sensing the momentum was with England, all-rounder Flintoff powered in and earned another lbw against VVS Laxman - who is set to become his Lancashire team-mate next summer - and should have had a second victim four overs later.
Yuvraj Singh had progressed to eight when he flashed at a wide delivery from Flintoff which looped straight to Cook in the gully - only for him to drop the regulation catch. He eventually fell to Monty Panesar for 27, caught by Matt Prior.
Panesar's second wicket was Harbhajan, caught by Graeme Swan after Dhoni fell to Anderson, caught by sub fielder Shah for 29. The last wickets - Zaheer and Mishra went to Flintoff.Reuse content