At stumps, England were 6/0 in their second dig and trailing by 21 runs with openers Alastair Cook (batting 2) and Keaton Jennings (batting 4) at the crease.
For the tourists, R. Ashwin (0/1), who opened the bowling, and Jasprit Bumrah (0/5) bowled a couple of overs each.
Replying to Englands 246 in the first essay, India started the day at 19/0 but after pacer Stuart Broad (3/63) removed the openers K.L. Rahul (19) and Shikhar Dhawan (23) in quick succession, India kept losing wickets at regular intervals.
Pujara, who notched up his 15th overall hundred and second outside Asia, used his feet brilliantly against the spinners and dropped anchor to stitch together a 92-run third wicket stand with skipper Virat Kohli (46) and lay the foundation.
Pujara then joined hands with tailenders Ishant Sharma (14) and Jasprit Bumrah (6) for 32-run and 46-run associations, respectively, surviving a middle-order collapse during tea and ensuring he held one end up.
For England, recalled all-rounder Moeen Ali was the pick of the bowlers, returning figures of 5/63.
Pujara took 257 balls to reach 132 and his innings was laced with 16 boundaries.
India were some 50 runs away when they lost the eighth wicket and a handy lead looked likely for England.
But a dogged Pujara shepherded the tail to help the visitors take a vital lead.
The right-hander from Saurashtra brought up his ton by hitting Moeen back over his head for two runs.
Earlier, Rahul and Dhawan had added 18 runs to the overnight score before Broad trapped Rahul to draw first blood for the hosts.
Soon after, Dhawan failed to control his instincts and offered a thick edge off a Broad delivery to be caught by Jos Buttler behind the stumps.
Kohli and Pujara then steadied the ship from 37/2 to 100 with no further damage, stitching together a 63-run unbeaten stand for the third wicket.
Kohli, in the process, also became the quickest Indian to enter the elite club of batsmen notching 6,000 Test runs.
Previously, Sunil Gavaskar had achieved the landmark in 117 innings, while the 29-year-old Kohli took two innings less to get to the feat.
In the second session, the hosts bounced back taking three wickets to reduce India to 181/5 at tea.
Pujara went back undefeated on a patient 70 after losing his partner Rishabh Pant for a duck on the final ball before the post-lunch session came to an end.
Pujara and Kohli (46) consolidated the innings further by putting together a solid partnership that deflated the English attack to some extent until left-arm quick Sam Curran (1/41) got the back of the India skipper, caught by Cook.
All-rounder Ben Stokes (1/23) then struck with the wicket of Indian vice-captain Ajinkya Rahane (11).
Thereafter, Pant joined Pujara in the middle and the duo managed to put on 20 runs, despite the fact that the rookie stumper failed to open his account even after facing 29 balls before being finally trapped in front by off-spinner Moeen.
In the final session, all-rounder Hardik Pandya (4) and Ashwin (1) fell to Moeen who was on a roll before Ishant got going with Pujara. The tall pacer was also dismissed by Moeen to complete his five-wicket haul with Broad accounting for Bumrah.
Brief scores: England 246 6/0 (Alastair Cook batting 2, Keaton Jennings batting 4; India 273 all out (Cheteshwar Pujara 132 not out, Virat Kohli 46, Moeen Ali 5/63, Stuart Broad 3/63). India lead by 21 runs.Read More