At the break, Pujara was unbeaten on 64 and Rahane 47 as they adding 79 runs in the second session. The hosts were reduced to 57 for three at lunch after captain Virat Kohli opted to bat at the Eden Gardens.
Pujara, who played a crucial role with his 62 and 78 in the Kanpur Test, again showed the kind of application needed with his team off a bad start.
They were never in a hurry and played according to the merit of the ball, collecting timely boundaries in the process.
Pujara completed his 10th half century in 141 balls, slicing Neil Wagner to the third man boundary.
More From This Section
The only blip of the session for India was when Rahane, on 33, stepped out to spinner Jeetan Patel but his mishit fortunately went high in the skies and away from substitute fielder Doug Bracewell.
24-year-old Mattt Henry, who replaced Ish Sodhi in the eleven, rocked the India top order with his twin blows of Shikhar Dhawan (1) and Murali Vijay (9) in the first 50 minutes.
Just when it seemed Kohli (9) was steadying the ship with a set Pujara, Trent Boult dismissed the skipper who suffered his third failure in as many innings.
Kohli got carried away after an exquisite cover drive and chased a ball way outside the offstump to be caught brilliantly by Tom Latham.
The dismissal less than half an hour before the lunch pegged back India's recovery.
At the other end, Pujara got off the mark with two elegant boundaries on both the sides of the wicket while Murali Vijay looked in fine form before falling to a beauty from Henry.
Playing only in his fifth Test, Henry, after repeatedly beating the outside edge, bowled one straight and full and Vijay had no option but to play at it, eventually getting a faint edge down to BJ Watling behind the stumps.
Patel, who is also making a comeback after more than three years as a replacement for injured Mark Craig, got promising turn from the High Court end, especially one that foxed Pujara.