Dimuth Karunaratne fell agonisingly short of a maiden Test double-century and Pakistan lost Mohammad Amir to injury on day two in Dubai as Sri Lanka gave themselves an excellent chance to seal a series victory.
Sri Lanka, who added 101 runs losing a single wicket in the first session of the day, continued to dominate despite losing wickets in the second session.
Karunaratne hit 19 boundaries and a six, improving on his previous best Test score of 186 made against the West Indies at Galle two years ago.
When on 143 he completed his 3,000 runs in 44th Test. Leg-spinner Yasir Shah has figures of 4-172.
Yasir took 6-184 in a marathon 55.5 overs of hard work and toil on a flat Dubai stadium pitch. Sri Lanka had already amassed 302 for the loss of four wickets when the pacer was taken off, and have since chugged along nicely, building up a total of over 400.
"We have to fight to our best abilities to win this Test and level the series". Dilruwan Pereras 58 was another handy knock that kept his side going even after Wahab Riaz removed Karunaratne, the big fish.
The first Test Centurion Captain Dinesh Chandimal demonstrated his brilliant form with the bat, and along with Karunaratne established a 118-run partnership for fourth wicket which still continues.
Abbas then had Suranga Lakmal for eight to finish with 2-100 while Shah ended the innings by dismissing Nuwan Pradeep for nought.
"Amir has been ruled out of the ODI series against Sri Lanka due to a stress related injury in the right shin".
Mohammad Aamir, since he returned to worldwide cricket in January 2016, has bowled 821.3 overs collectively across all three formats in global cricket, third-most by a fast bowler after Kagiso Rabada (896.3) and Josh Hazlewood (846.1).