The 23-year-old wrecked Sri Lanka's top order in two inspiring spells before the hosts reached 73-8 in their second innings at stumps on the second day for an overall lead of 182 on Tuesday.
Asif, playing only his fifth Test, threw the match wide open after his team had crashed to 170 in reply to Sri Lanka's first-innings total of 279.
He has so far captured 11 wickets in the match following his six-wicket haul in the first innings. Waqar Younis, the team's current bowling coach, is the only other Pakistani to capture 11 wickets in a match in Sri Lanka.
Twenty wickets fell during the eventful day's play, leaving the Test delicately poised on a pitch of variable bounce.
Off-spinner Muttiah Muralitharan had triggered Pakistan's collapse on his home ground with 5-39, his 51st haul of five or more wickets in a Test innings in 103 matches.
But Asif sustained his team's hopes of clinching the series after the drawn opening Test at Colombo, finishing with 5-27 off just 12 overs.
Sri Lanka lost eight wickets in less than 25 overs in a dramatic closing session with none of their batsmen crossing the 20-mark.
Asif, whose subtle variations in pace never allowed the batsmen to settle, was supported by seamer Abdul Razzaq who bagged three wickets.
Sri Lanka were also a quality batsman short after Sanath Jayasuriya was ruled out of the remainder of the match due to a thumb injury.
The left-handed opener sustained the injury while taking a catch off Imran Farhat in the morning session of his farewell Test.
Pakistan were comfortably placed at 121-2 before floundering against Muralitharan, who troubled the batsmen with turn and bounce.
Younis Khan top-scored with 35, followed by makeshift opener Kamran Akmal (33) and Farhat (23).
Wicket-keeper Akmal, opening the innings following Shoaib Malik's withdrawal due to fever, gave his team a solid 57-run start with Farhat.
Muralitharan, 33, began the slide when he had Akmal caught bat-pad by skipper Mahela Jayawardene at slip with his second delivery.
He had Pakistan in deep trouble when he captured three more wickets in the afternoon session, his victims being Faisal Iqbal, Mohammad Yousuf and Razzaq.
Faisal (five) misread a 'doosra' and was trapped leg-before while Yousuf (17) and Razzaq (four) were bowled to leave their team struggling on 149-6.
The tourists suffered a big blow when captain Inzamam-ul-Haq (15) was run out off a direct hit by substitute Chamara Kapugedara from square-leg when the batsman responded to a call for a quick single.
Muralitharan claimed his fifth victim when he had Danish Kaneria caught behind.
Sri Lanka earlier added 12 runs to their overnight total of 267-8 before being all out. Asif finished with his Test best haul of 6-44.