Having resumed on 263 following Dom Sibley's late dismissal on Friday, the pair put on another 92 without loss to reach 355 for three at lunch.
Root played the anchor role despite starting with 128 to his name, moving watchfully to 156 not out as he followed up knocks of 228 and 186 in Sri Lanka with yet another towering score.
But Stokes' first innings since August was even more compelling viewing as he dialled up the aggression, smashing nine fours and two sixes in an unbeaten 63. With the ball spitting unpredictably from the footmarks, India briefly thought they had caged the lion, only for the Stokes to chew through the bars.
He narrowly survived a vicious yorker from Jasprit Bumrah while still on a nought before revealing his first two scoring shots, steering the paceman for four between slip and gully then a lifting Ravichandran Ashwin for six over long-off.
Root passed 150 for the 10th time in Test cricket at a gentler rate, scoring exactly 14 in each of the first two hours, but the action was hotting up at the other end.
With the ball turning and bouncing awkwardly to the left-hander, Stokes was put under pressure. Attempting to hit his way out of trouble he was reprieved on 31 and 32, Ashwin putting down a tough return catch one-handed and Cheteshwar Pujara failing to pluck a half-chance out of the air at mid-wicket.
For a moment he looked vulnerable, but his 'alpha' side soon took over. His next attempt at slog-sweeping Shahbaz Nadeem sailed clean for six and when the left-armer tried to regain control, Stokes had the audacity to reverse sweep successive deliveries out of the footmarks for four.
India spurned a run out chance when Stokes hurried Root through for a misjudged single but with boundaries continuing to flow from the all-rounder's bat and further signs of uneven bounce at both ends, the game was falling into place for England.