All-rounder Ben Stokes lived a charmed life to register his fourth century as England punished a sloppy India to post a huge first innings total on the second day of the opening test in Rajkot.
After winning the toss and asking the hosts to bowl on a docile pitch, an increasingly confident England capitalised on some slack fielding to amass 537 runs, effectively batting India out of the first match of the five-test series.
India openers Gautam Gambhir and Murali Vijay safely negotiated the 23 overs they faced to take their side to 63 without loss at stumps, trailing England by 474 runs.
Gambhir was unbeaten on 28 while Vijay was on 25.
Stokes survived two dropped catches, two run out chances and a tough stumping opportunity before he was finally out for 128 just before the scheduled tea break.
The New Zealand-born batsman, who also saw three mis-hits soar high into the air before falling between onrushing fielders, reached three figures with a boundary off spinner Ravindra Jadeja (3-86).
After Joe Root scored a hundred yesterday, Moeen Ali and Stokes matched the feat a day later to mark the first time in 55 years that an England side had three batsmen score centuries in the same innings at an Asian venue.
Geoff Pullar, Ken Barrington and Ted Dexter all scored hundreds in the second innings of a test against India at Kanpur in December 1961.
Resuming on 311-4, England walked out in a positive frame of mind and dominated the Indian attack, who failed to help their cause by bowling too many loose deliveries.
Moeen had been on 99 overnight, but picked up the run he needed to bring up his milestone off the third ball of the day when he dabbed pace bowler Mohammed Shami for a quick single.
The left-hander then blasted fast bowler Umesh Yadav for three boundaries in four balls, prompting India captain Virat Kohli to bring on off-spinner Ravichandran Ashwin after just five overs with the second new ball.
Moeen was dismissed for 117 after shouldering arms to an inswinging delivery from Shami, which ended a brisk 62-run stand with Stokes for the fifth wicket.
There was, however, no respite for the Indian bowlers as Stokes and Jonny Bairstow added another 99 for the sixth wicket before the latter was caught behind off Shami.
India had dropped three catches on the first morning of the match and their profligacy continued when wicketkeeper Wriddhiman Saha dropped Stokes twice off Yadav.
Stokes was on 60 when Saha spilled the ball after diving to his left. The wicketkeeper then grassed another almost identical opportunity when the all-rounder had added another run.
Bairstow hit five fours and two sixes in his aggressive knock of 46 before Saha finally managed to hold on to a catch.
Stokes also added 52 for the ninth wicket with Zafar Ansari before Saha completed a smart catch down the leg side off Yadav to dismiss him.