England had to overcome the early loss of their captain Alastair Cook as they struggled for a foothold on day two of the second Test.

After Moeen Ali's three quick wickets helped to limit India to 455 all out in Vizag, Cook fell for only two - putting the onus on Haseeb Hameed and Joe Root to keep India at bay on the way to 34 for one at tea.

England already faced a tough task to achieve parity on a pitch predicted to deteriorate more quickly than its predecessor for the drawn first Test in Rajkot.

But after Cook had his off-stump snapped in two by a delivery from Mohammad Shami which held its line to bowl him through the gate, his team needed to dig even deeper to stay competitive.

Moeen had threatened to bowl them right back into the equation when he took the key wicket of Virat Kohli and then added two more in three deliveries, after India resumed on 311 for four.

But Ravi Ashwin (58) engineered an eighth-wicket stand of 64 with debutant Jayant Yadav either side of lunch.

Kohli appeared to have his sights set on what would have been his third Test double-hundred of the year, but had to be satisfied with a mere 167 - the first of three wickets to fall for 12 runs.

Ben Stokes dropped a sharp chance offered by Ashwin on 17 at slip off Moeen only to instead snap up the greater prize in the same position when Kohli edged a drive next ball.

Moeen (three for 98) doubled up immediately after mid-morning drinks, finding sharp turn to have Wriddhiman Saha lbw on the back foot; then Ravindra Jadeja was gone for a second-ball duck - lbw too, albeit to a delivery simulation depicted the ball missed the left-hander's leg-stump.

By then, Jadeja had walked off without consulting DRS.

Moeen Ali took two wickets in three balls to get England back on track (AP)

India were faltering after their captain's near seven-hour innings which contained 18 fours from 267 balls, but Ashwin took advantage of his let-off in an 86-ball 50 before Stokes had him caught-behind driving.

Adil Rashid took his first wicket of the innings, Jayant Yadav aiming a big hit to leg but instead presenting the easiest of catches to point. Umesh Yadav and Shami then inflicted a little more pain in a brief but carefree last-wicket stand - before both got to work with the new ball.