Swann finished with four for 68 in Pakistan's first-innings 308, a lead of 75, with Azhar Ali stranded on his highest Test score of 92 not out.
Pakistan's lead looked all the more challenging when captain Andrew Strauss was caught in the slips off the fourth ball of the first over from Mohammad Aamer for four. England, who lead 2-0 in the four-match series, finished the day on six for one. For once in the series, England's pace bowlers struggled to make an impression on a Pakistan top order bolstered by the return of Mohammad Yousuf from a short-lived retirement.
Swann bowled unchanged between lunch and tea to dismiss captain Salman Butt (17), nightwatchman Wahab Riaz (27) and Yousuf (56). Yousuf's dismissal gave Swann 100 Test wickets in 23 matches.
Score board
ENGLAND (I Innings): 233 all out
PAKISTAN (I Innings, O/n: 48/1):
Farhat b Anderson 11
Hameed c Prior b Finn 36
Riaz lbw Swann 27
Butt c Prior b Swann 17
Yousuf c & b Swann 56
Ali (not out) 92
U Akmal (run out) 38
K Akmal c Morgan b Broad 10
Aamer c Prior b Broad 6
Ajmal b Anderson 0
Asif c Anderson b Swann 8
Extras (LB-4, W-1, NB-2) 7
Total (all out, 100.2 overs) 308
Fall of wickets: 1-48, 2-48, 3-76, 4-110, 5-179, 6-236, 7-251, 8-269, 9-270.
Bowling: Anderson 24-6-79-2, Broad 25-4-72-2, Finn 20-4-74-1, Swann 27.2-9-68-4, Collingwood 4-0-11-0.
ENGLAND (II Innings);
Strauss c Hameed b Aamer 4
Cook (batting) 0
Anderson (batting) 2
Total (for 1 wkt; 3 overs) 6
Fall of wicket: 1-4.
Bowling: Aamer 2-1-5-1, Asif 1-0-1-0.
Deccan Herald is on WhatsApp Channels| Join now for Breaking News & Editor's Picks