Kohli was unbeaten on 91 off 135 balls while Pujara was batting on 97 off 177 when the tea was taken in the middle of the 57th over after a stray dog halted the proceedings. India had reached 210 for two with Kohli and Pujara extending their partnership to 188 runs.
If the first session was all about laying the foundation after India lost both the openers for 22, the second was all about the duo asserting themselves on the opposition as they added 118 runs in the session without any damage.
Unbeaten on 37 at lunch, Kohli was in supreme command and was just nine short of his 14th Test hundred.
Pujara dissected the cover and mid-off with finesse to reach to his 11th half century.
England packed Pujara's offside with eight fielders but he still found the gaps and dispatched the ball to the boundary without any fuss as India scored at six runs per over in the last 10 overs before tea.
From dropping Kohli on 56 to an LBW call of Pujara being dismissed after a review, nothing went in England's way as they kept rotating their six-bowling spin-pace options without the desired results.
Making a hurried return after he was pulled in from an ongoing first-class match, Rahul got out for duck edging Stuart Broad to Ben Stokes at the third slip.
Murali Vijay (20) looked in fine nick and hit four boundaries en route to reach 3000 runs.
But against a rising delivery from James Anderson, he found himself clueless as the ball came off his gloves and looped to Ben Stokes at gully.
Broad was soon off the field after aggravating his right wrist cut that he had sustained in the first Test as Stokes came in to replace him in the eighth over.
(REOPENS DEL 30)
An element of luck also seemed to go with Kohli who pulled Anderson but his top edge landed in no-man's land before crossing the ropes.
India also survived runout chances twice with Pujara at at the receiving end on both the occasions.
Not among the fastest runners in the team, Pujara, was caught in a mix-up with an agile Kohli twice. Fortunately for India, it did not cost them a wicket.
Alastair Cook introduced spin as early as in 10th over with leftarm orthodox Zafar Ansari but without much success as the ball did not turn a great deal in the first session.
Earlier Kohli made an intriguing selection when he handed 26-year-old offspinner Jayant Yadav a surprise Test debut replacing Amit Mishra who had bowled a magical 5/18 at this venue to skittle New Zealand for 79 three weeks ago.
In the same match Jayant had made his ODI debut and today the Haryana offspinner was handed India's 286th Test cap by former India captain Ravi Shastri.
That senior pro Gautam Gambhir was making way for a fit-again KL Rahul was already made clear by Kohli as India made two changes to their XI.
