England's Gary Ballance scored his second Test century as the second Test against India sat evenly poised following a sweltering day's play at Lord's.
India first innings 295
England first innings
A Cook c Dhoni b Kumar 10
S Robson c Dhoni b Kumar 17
G Ballance c Dhoni b Kumar 110
I Bell c Jadeja b Kumar 16
J Root lbw b Jadeja 13
M Ali lbw b Vijay 32
L Plunkett not out 4
M Prior not out 2
Extras: (1b, 9lb, 2w, 3nb) 15
Total (for 6 wickets): 219 in 86 overs
Fall of wickets: 1-22, 2-31, 3-70, 4-113, 5-211, 6-214
Having dismissed the visitors for 295 on a pitch that appears to be getting easier to bat on, England reached 219 for six at close on day two.
Liam Plunkett (four) and Matt Prior (two) will look to reach India's total on Saturday should the predicted poor weather hold off, while the visitors will be desperate to take a lead into their second innings.
Bhuvneshwar Kumar was the pick of the Indian bowlers, getting rid of captain Alastair Cook and Sam Robson before lunch and Ian Bell after the break.
The hosts also lost Joe Root before Ballance and Moeen, two of England's success stories in what has been a tough period after series defeats by Australia and Sri Lanka, combined to good effect.
They put on 98 for the fifth wicket, having come together with their side in trouble at 113 for four.
While others in England's order struggle, Zimbabwe-born Ballance continues to prosper at number three, scoring two centuries and two half-centuries in his last five turns at the crease.
He hit 15 boundaries in total, reaching three figures off 186 balls when he flicked Stuart Binny through the on side.
Earlier, India's first innings lasted only ten balls of the morning session before Ben Stokes had Shami caught by Cook, his 100th Test catch, with five runs added to the overnight score.
The first match of the five-Test series at Trent Bridge was drawn.