England made crucial inroads on the morning of the second day at Multan, with Jack Leach claiming three wickets as Pakistan collapsed and were bowled out for 202 at lunch.
Pakistan finished the first day in a comfortable position, having bowled England out for 281, and resumed day two on 107 for two.
However the wickets fell rapidly throughout the morning session, with Leach capitalising on a turning pitch to finish with four wickets for 98 runs as the hosts lost eight wickets for just 60 runs on the morning of day two.
Pakistan went defensive, and England capitalised in a period which included taking three wickets for no run on the brink of the lunch interval.
At the start of the second day, England had a crucial breakthrough, with Ollie Robinson taking the critical wicket of Babar Azam, who had started the day on 63. He was bowled through the gate by the England seamer for 75.
Afterwards, the wickets came thick and fast. James Anderson rolled back the years with a running, diving catch over his shoulder to bring an end to Saud Shakeel’s innings.
Shakeel had just brought up his half-century, but finished with an attritional 63 from 106 balls, and became Leach’s 100th Test scalp – with the spinner becoming the 49th English cricketer to reach the milestone.
Leach then claimed the wicket of Mohammad Rizwan, who had taken 27 balls to get off the mark. The T20 opener had made just 10 when the England spinner unleashed a perfect turning delivery to bowl the wicketkeeper and leave Pakistan 165 for five.
Robinson caught Mohammad Nawaz off Leach for a single and the next two wickets also fell on 169, with Mohammad Ali tapping Joe Root to first slip, after Agha Salman had hit the former captain straight to Ben Stokes at short mid-wicket.
After the fall of five wickets for 11 runs, it was left to Mark Wood to wrap things up with the dismissals of Faheem Ashraf (22) and Zahid Mahmood (nought) as England established a 79-run first innings advantage.