Skipper Mahendra Singh Dhoni (65 not out, 124 balls, 11 fours, 1 six) waged a lone battle scoring his 33rd Test fifty to help India cross the three-figure mark after they were reduced to 36 for five at one stage.
Dhoni put on unconquered 35 runs for the last wicket with Ishant Sharma (2 not, 27 balls) as the fit-again medium pacer hung about long enough to delay the tea-break, and register the highest partnership for India in this beleaguered innings.
The visitors were placed precariously at 43 for five at lunch and needed Dhoni and Stuart Binny (5) to show some grit.
The conditions never got better as the ball swung the whole day under intense cloud cover. But Binny (5) could only add one run to his pre-lunch score before he nicked one of Anderson's many outswingers to Alastair Cook at first slip.
Ravichandran Ashwin (13 runs, 17 balls, 1 four) then came to the crease and became only the third Indian batsman to reach double figures in the innings. In doing so he put up 24 runs for the seventh wicket with Dhoni, the second-highest partnership of the innings, and helped India cross the 50-run mark in the 32nd over of the day.
Bhuvneshwar Kumar (5) was guilty of playing a poor shot, trying to smack a wide delivery from Jordan and only managing to be caught behind. Varun Aaron (1) followed suit as Woakes took a simple return catch of his own bowling.
