Pujara smashed 54 not out off 58 balls while skipper Virat Kohli contributed 38 off only 40 deliveries after India bowled out Bangladesh for 388 in their first innings in the morning session.
A cushion of 299 was good enough for the hosts to go for the jugular even though openers Murali Vijay (7) and Lokesh Rahul (10) were dismissed in quick succession by Taskin Ahmed (2/43).
Using Taskin Ahmed's pace to his advantage, Pujara hooked him behind the square for a six. Kohli was not the one to be left behind as he lofted Shakib Al Hasan effortlessly for a six over long-on.
Pujara drove left-arm spinner Taijul Islam through covers and had another glorious shot through same region of Taskin Ahmed. A firm push through mid-on was a treat to watch.
More From This Section
Just when Kohli was about to shift gears, a poor shot led to his downfall with Mahmudullah Riyadh taking a smart catch at short mid-wicket off Shakib Al Hasan's bowling. He hit two fours and a six.
Ajinkya Rahane, having regained confidence after his first innings 82, followed team diktat hitting 25 off 31 balls with a couple of boundaries and a six off Mehedi Hasan Miraz. He was bowled trying to hit Shakib out of the park.
With declaration in mind, Ravindra Jadeja was promoted up the order to consolidate the lead before tea.
(REOPENS DEL20)
Earlier, Bangladesh skipper Mushfiqur Rahim scored a gritty hundred as the visitors made 388 in their first innings with Ravichandran Ashwin completing the milestone of fastest 250 wickets.
Rahim scored 127 as Bangladesh were all out 299 runs short of India's first innings score of 687/6 declared.
However, with the Indian bowlers having sent down 127.5 overs, skipper Virat Kohli decided against enforcing a follow-on.
With the Bangladesh tail showing stomach for a fight frustrating the Indian bowlers, Ashwin's (2/98 in 28.5 overs) agonising wait for world record ended when Mushfiqur's paddle sweep was caught down the leg by Wriddhiman Saha. Ashwin was playing in his 45th Test match.
The century came off a flick which Ishant Sharma misfielded and it crossed the boundary ropes much to the batsman's elation.
The two other shots that he played in the morning included a hooked six off Ishant, which he was not in control and a swat off Ashwin over the ropes in the cow corner region.
The Bangladesh skipper should be given due credit in the manner he batted with the tail after young Mehedi Hasan Miraz (51) was cleaned up by Bhuvneshwar Kumar (1/52) on his overnight score, with an incoming delivery that reversed.
In fact, Mushfiqur at times took the risk of taking single off the first or second delivery exposing Taijul to Ishant, who was getting the ball to rear from back of length.
Taijul was uncomfortable while facing the short balls and had two streaky boundaries before he tried to fend a rising delivery from Umesh in an ugly manner to give Wriddhiman a simple catch.
Jadeja finally got rid of Taskin with Rahane taking a catch at slips.
In the end, it was Ashwin, who got his 250th scalp after being frustrated for the better part of the innings.