Gul claimed three for 14 in seven overs as India, electing to take first strike on a greenish wicket, slumped to 107 for four by lunch on the first day on Monday.
At the break, stand-in skipper Rahul Dravid was batting on 27 while Yuvraj Singh was on six.
Pakistan trail 0-1 in the three-match series after losing the first Test at Multan by an innings and 52 runs.
Gul, who turns 20 next week, led a remarkable comeback by the home team's bowlers with the prize wickets of Virender Sehwag and Sachin Tendulkar in successive overs and the vital one of Venkatsai Laxman just before lunch.
The first break was provided by Mohammad Sami who trapped Aakash Chopra leg-before in the second over.
Sehwag, who hit an epic 309 in the Multan Test, appeared to continue the same form when he began by slashing Shoaib Akhtar for a six over point.
Gul forced an edge off Sehwag's rampaging blade to carry to wicketkeeper Kamran Akmal after the opener had made a rapid 39 with six boundaries and a six.
In his next over, Gul trapped Tendulkar leg-before for two to leave India at 75 for three.
Laxman, who made 11, edged an outswinger off Gul to second slip where Taufiq Umer took a low catch.
India brought in seamer Ajit Agarkar in place of the injured Zaheer Khan in the side that won the first Test.
Pakistan was forced to make four changes after injuries to Abdul Razzaq (back problem), Shabbir Ahmed (shin) and wicket-keeper Moin Khan (groin) in addition to dropping out of touch off-spinner Saqlain Mushtaq.
Their places were taken by left-handed batsman Asim Kamal, Gul, reserve 'keeper Akmal and leg-spinner Danish Kaneria.