Cheteshwar Pujara scored 135, hitting 12 boundaries. The 24-year-old was dismissed for the first time in the series after scoring unbeaten 206 and 41 in the first Test at Ahmedabad.
Panesar, playing his first match in the series, picked up his eleventh five-wicket haul while spin partner Swann accounted for four of the Indian wickets.
Resuming the day on 266 for six, India lost Ravichandran Ashwin (68) in the ninth over of the day. The off-spinner managed to add only eight more runs to his overnight score.
Pujara was stumped off the bowling of Swann, who took three of the four wickets to fall in the morning session.
Harbhajan Singh (21) and Zaheer Khan (11) provided the crowd some entertainment hitting a six each but failed to cope up with the guile of Swann.