Coming off the back of a dream opening day at the third LV= Insurance Test – dismissing the tourists for just 78 and finishing 120 without loss at stumps – England were sitting on a lead of 220 by tea.
Root was in magical form with 80 not out in a total of 298 for three, with Malan feathering down leg-side to fall for 70 in his first Test innings for three years.
Openers Rory Burns (61) and Haseeb Hameed (68) were dismissed in the morning session without going big but the baton was picked up deftly by the Yorkshire pair, who put on 139 for the third wicket.
It was the first time since 2013 that each of England’s top four had passed 50 in the same innings, a fitting riposte to the top-order travails that Hameed and Malan were recalled to address.
Having shared England’s biggest opening stand for five years, both Burns and Hameed would have been hoping to dial straight back into their fine form from the previous evening.
Instead, neither had it their own way. Burns was celebrating his 31st birthday but got no gifts from India, adding just nine to his score in almost 40 minutes before dragging Mohammed Shami into his stumps.
After losing all 10 of their own wickets in less than 41 overs, India had finally mustered one of their own after exactly 50.
Hameed was intent on extending his stay after two cheap dismissals in his comeback appearance at Lord’s, but became a little stuck in a cycle on leaves and well-rehearsed forward defences.
By the time he departed he had scored just eight runs from 65 deliveries, ultimately undone by a delicious delivery from the left-arm spin of Ravindra Jadeja, who turned one past the bat and clipped off stump.
For the first time in five years, Hameed had proven his reputation as a player of international pedigree.
Malan, last seen in England whites in 2018, was on a similar mission but was more frisky early on. His first four scoring shots all hit the boundary boards – off the mark with a cover drive and cutting Mohammed Siraj punitively.
Root joined him shortly before lunch and signed off before the break with a pair of boundaries that lifted the lead into three figures. India had just enjoyed their best session of the match but the next two hours were a walkover as 116 runs ticked by.
Jadeja was unable to repeat the magic that removed Hameed, going too full or too short and offering up regular boundary balls. Root whipped and swept, Malan stepped back and cut.
By the time the second new ball arrived at 226 for two, England were already 148 in front and the stand was well past 50. India needed the fresh Dukes to deliver wickets, but it only brought out the best in their opponents.
Malan crunched Jasprit Bumrah to the cover boundary in his first over back, while Root leapt an inch off the ground to slash the returning Shami through point.
Both men were rock solid outside off stump, not only smothering the ball but frequently guiding it into gaps that Virat Kohli could not plug.
Both players reached their half-centuries in smooth fashion, with the shine disappearing from the ball and nothing but a rising run-rate to show for it.
Malan was dismissed by the very last ball of the afternoon, tickling a leg-stump delivery through to Rishabh Pant.
Root, to nobody’s surprise, remained in position and in sight of a third straight century in the series.