Shabbir picked up three top batsmen, including Sachin Tendulkar, in his first four overs to build on captain Inzamam-ul Haq's decision to bowl first on the seaming wicket at the Arbab Niaz stadium on Friday.
India slipped from 37 for three to 140 for six before Yuvraj Singh cracked a defiant 65 off 76 balls late in the innings to boost the total.
Ramesh Powar (14) and tailenders Irfan Pathan (16) and Laxmipathy Balaji (21 not out) aided the recovery which saw India put on 104 valuable runs for the last three wickets.
But the tourists face a tough task to contain the Pakistanis with a depleted bowling attack that is missing four injured frontliners, Anil Kumble, Harbhajan Singh, Ajit Agarkar and Ashish Nehra.
Both teams are tied 1-1 in the five-match series and the victor in Peshawar will gain a definite edge going into the last two matches in Lahore on March 21 and 24.
Bowlers finally had something to smile about on the greenish wicket, unlike the perfect batting strips laid out for the first two matches that produced more than 300 runs in each innings.
Shabbir, who bowled a 14-ball first over that included six wides and two no-balls, removed Tendulkar for no score with his third legitimate delivery.
The Indian master, fresh from a record 37th century in the previous match at at Rawalpindi on Tuesday, hung his bat out to an outswinger and was snapped up by wicketkeeper Moin Khan.
Shabbir forced the dangerous Virender Sehwag to edge a catch to Shahid Afridi at gully and then clean bowled Venkatsai Laxman with a delivery that swung in sharply.
Captain Sourav Ganguly and his deputy Rahul Dravid retrieved the situation by adding 68 for the fourth wicket to lift India to 105 for three by the 24th over.
Ganguly hit five boundaries and a six in an aggressive 39 off 41 balls when he edged a drive off Abdul Razzaq to Moin.
Dravid (33) became Moin's third victim behind the stumps, gloving a pull of Shoaib Malik in the 33rd over.
Five deliveries later, Razzaq trapped Mohammad Kaif leg-before for one as India slipped to 140 for six.
Pakistan's bowlers helped India's recovery by sending down 23 wides and four no-balls.