On a rain-curtailed second day, it was a Cheteshwar Pujara run-out that cost the visitors dearly, as James Anderson's five-wicket haul helped the hosts bowl India out for 107.
Having scored 141 runs in the afternoon session to take the lead past 100, England continued to dominant after tea, with Bairstow reaching his half-century and Woakes following suit shortly after. Challenge for the Indian side will be to bowl England out and weather the England seam attack.
He completed his maiden Test century on Saturday, when he shared an England record sixth-wicket stand against India of 189 with Bairstow (93).
With Woakes, the first of England's three bowling all-rounders, at the crease alongside Bairstow, India could sense an opportunity to expose the tail.
England lead the five-match series 1-0 following their victory in the opener at Edgbaston.
"I was probably getting a little bit nervous", Woakes said. I hope they go for the former.
Instead he fell seven short when brilliantly caught one-handed by diving opposing wicket-keeper Dinesh Karthik off Pandya.
But it was new-ball partner Mohammed Shami who made the breakthrough when Keaton Jennings (11) was lbw playing across the line.
Pope made a promising 28 before he was lbw to Pandya.
But England, so often susceptible to collapses, kicked on as Bairstow and Woakes began to look comfortable on a pitch offering far less assistance to the bowlers than on day two.
And to what became the last ball before lunch, England captain Joe Root was lbw for 19 to an off-cutter from Shami, who also had Jos Buttler (24) leg before in a stumps return of three for 74 in 19 overs.
India's decision to replace pacer Umesh Yadav with slow left-arm bowler Kuldeep Yadav came into question as the tourists struggled to maintain control on a wicket that appeared better suited to seamers than spinners.
But he demonstrated his range with a vertical-bat flick down to fine leg when Ashwin strayed in direction.