Abrar Ahmed starred with the ball on his Test debut with an incredible seven for 114 as England were bowled out for 281 at tea on day one in Multan.
The Pakistan mystery spinner had at one stage looked like becoming only the fourth player to take 10 wickets in a Test innings, but had to share the spoils as Zahid Mahmood took the last three.
England had shown no signs of easing up their attacking intent which led them to victory in the first Test, but this time Pakistan took wickets consistently on a pitch that ominously looked to be lively for the spin attack even on the first morning.
Ollie Pope and Ben Duckett scored half-centuries but a number of other players could only manage to get themselves in before getting out without posting a significant score after England had won the toss and elected to bat.
Abrar claimed five wickets in the morning session, with Zak Crawley his first scalp in the format from only his fifth ball – and he finished the innings with the 12th-best figures in a player’s debut Test innings.
Duckett’s half-century came from just 40 deliveries and he looked to accelerate further with a first six of the match. He successfully overturned an lbw decision from the first ball of the 19th over but had to depart five deliveries later for 63.
Pope reached 60 before he became Abrar’s fourth wicket of the day, attempting a reverse-sweep only be caught at backward point.
Harry Brook then sent a leading edge to mid-on to give Abrar his five-for, but it was his delivery to Stokes that was the pick of the wickets.
The 24-year-old bowled a googly that pitched on leg stump and turned sharply to hit the top of off, with Stokes departing for 30 and visibly stunned.
Zahid then picked up the final three wickets of the innings, ending the chance of Abrar taking all 10 when Ollie Robinson holed out to Mohammad Nawaz.
Jack Leach was bowled reverse-sweeping his first ball and though Mark Wood blasted a useful 36 not out at number nine, Zahid (three for 63) wrapped things up with the wicket of James Anderson.