Among the five no-balls that Bangladesh bowlers bowled on the day, two had dismissed Pakistan batsmen.
But those were be ruled out for the overstepping at the Sher-e-Bangla National Cricket Stadium on Wednesday.
Azhar Ali, who went on to score an unbeaten 127, got a reprieve on 18 while the other centurion Younis Khan (148) got a life on 78 thanks to no-balls.
Azhar edged Shahid to Soumya Sarkar in the slips before cracking his eighth Test century.
Sarkar himself bowled a no-ball when Younis, who touched Sir Don Bradman with 29th century, was similarly let off after he had sent a catch straight to Shakib Al Hasan at cover.
But replays showed Sarkar had overstepped.
The pair went on to put up a huge 250-run third wicket partnership to punish a depleted bowling unit.
“The chances that went by were off no-balls. No one bowls no-ball willingly, it just happened,” said Shahid after the close of play.
The 26-year old said he had been more cautious after he overstepped the line first time.
“Since then (I’ve) been bowling from behind a bit. I thought I have to check the no-balls. Because chances may come again.”
Shahid returned 2 for 43 in his 21 overs as Pakistan surged ahead to 323 for three at stumps.