All-rounders Ben Stokes and Moeen Ali both hit centuries on Thursday as England made an imposing 537 all out on the second day of the first Test against India.

Gautam Gambhir (28*) and Murali Vijay (25*) gave India a steady start, but things could quickly change on day three, when India will resume at 63-0.

Stokes hit 13 fours and two sixes in his 128-run knock after Ali, who had been unbeaten on 99 overnight, made 117 as England cantered to what was the biggest total by a visiting team in India for nearly five years.

Joe Root (124) had notched up a century on the opening day to lay a solid foundation for the tourists at Rajkot's Saurashtra Cricket Association ground before the England middle order piled on the agony.

Source: b'Ben Stokes added more misery to India. PTI'

The visitors lost a succession of tailenders in the period immediately after lunch but Stokes stayed put to help England post their third highest total on Indian soil, after they elected to bat first.

Stokes, who had three ducks in three previous Test innings against India, mixed caution with aggression in scoring his fourth ton in the longest format of the game.

India's bowlers toiled, with top-ranked spinner Ravichandran Ashwin conceding 167 runs while taking just two wickets.

After bringing up his fourth Test century, Ali was bowled by Mohammed Shami (2-65) in the morning session which saw England hammer 139 runs while losing one more wicket. 

Jonny Bairstow, the highest Test run-scorer this year, made 46 and shared a 99-run partnership for the sixth wicket with Stokes before also falling to Shami.

The Indian bowlers struggled to put the brakes on the free-scoring England batsmen with dropped chances adding to their misery on an easy-paced track.

Stokes was dropped twice in his sixties by wicketkeeper Wriddhiman Saha with Umesh Yadav (2-112) being the unlucky bowler on both occasions.

The Indians took the new ball in the morning after England resumed at 311 for 4, but failed to get an immediate breakthrough.

Ali reached his century off the third ball of the day from Shami who seemed to have recovered from the cramps he suffered on the opening day.

The spinning all-rounder singled out Yadav for special punishment, taking three fours in four balls off the paceman.

Stokes chipped in before Shami broke their 62-run stand with the wicket of Ali who saw his off-stump cartwheel away in spectacular fashion after misjudging the line and not playing a shot.

Source: b'Gambhir and Vijay gave India a steady start. Reuters'

Bairstow also looked in ominous form, lofting leg-spinner Amit Mishra over the long-on boundary for a six.

But he lost his wicket when he was caught by Saha off Shami, who looked the pick of the bowlers.

England's total was the highest by a visiting team in India since the West Indies made 590 at Mumbai in November 2011.

Feature image source: PTI