England paceman Stuart Broad was put to the sword by Jasprit Bumrah as India set a Test record for the most runs scored in an over.
The previous record of 28 runs was obliterated as India grabbed 35 from Broad's shocking set of six, with Bumrah doing most of the damage.
The rout began with a top-edged hook to the boundary for four, before Broad's over descended into chaos as a high wide scurried off to the boundary to give India five free runs, and the next ball, a no-ball, was flung away for six.
Bumrah lashed each of the next three deliveries for four as India reached 28 from the first four permissible deliveries, before the India captain clattered Broad away for a second six of the over.
India had 34 with one ball remaining, and this time Broad sent down a yorker, with Bumrah and Mohammed Siraj scrambling a single.
The onslaught took India from 377-9 to 412-9 on the second morning of the match, with the tourists adding just four more in the next over before James Anderson had Siraj caught by the fed-up Broad.
This fifth Test at Edgbaston is a long-delayed series decider, having been postponed from last September, when it was due to be played at Old Trafford, due to COVID-19 concerns in the India camp.
Anderson and England colleague Joe Root were two of the three players who had previously conceded 28 runs from a Test over, to share the unwanted record with South Africa Robin Peterson.