All of Kaushal???s strikes came after lunch as Pakistan crumbled from 70-2 at the interval to 138 all out, with the off-spinner taking 5-42.
The hosts reached the close of play on 70-1 in their first innings, with opener Dimuth Karunaratne (28), the only wicket to fall.
Sri Lanka are looking to level the three-Test series after falling to a 10-wicket defeat in the first game at Galle.
Pakistan???s captain Misbah-ul-Haq won the toss and decided to bat first but was left to rue his decision as Sri Lanka’s bowlers extracted significant movement from the pitch.
Ahmed Shehzad fell in the third over of the morning when edging Dhammika Prasad (3-43) to Kumar Sangakkara at first slip.
Mohammad Hafeez (42) and Azhar Ali (26) shared the only meaningful partnership of the innings, putting on 46 for the second wicket, before Ali became Prasad???s second victim, edging behind.
Originally given not out by the umpire, Sri Lanka captain Angelo Mathews called for a review and the on-field decision was overturned.??
Younus Khan, playing his 100th Test, was lucky to survive another review from Mathews off his own bowling but then fell immediately after lunch to Prasad.
From then on it was Kaushal who inflicted the damage, first bowling Hafeez, and then running through the Pakistan lower order.
Misbah was run out for seven to reduce his side to 96-6 and Dushmantha Chameera (1-33) grabbed the other wicket ??? his first on his Test debut ??? with the penultimate strike of Zulfiqar Babar.
Tea was taken after Kaushal completed his five-for with the wicket of Yasir Shah, before the hosts made a watchful start to their first innings, reaching stumps on 70-1.
Karunaratne departed after he was caught behind with a wild slash at a wide ball from Junaid Khan (1-26), but Kaushal Silva (21no) and Kumar Sangakkara (18no) both saw out the remainder of the evening session.