Asif bagged 4-41 and leg-spinner Kaneria 3-44 to help dismiss Sri Lanka for a meagre 185 in overcast conditions.
Pakistan were 124-4 in reply with skipper Inzamam-ul Haq (30) and Abdul Razzaq (one) the not out batsmen after opener Imran Farhat produced a stroke-filled knock of 69 with 13 fours.
But the day belonged to their bowlers. Asif grabbed three scalps in the first session and Kaneria found success in the second to seize the initiative for Pakistan, who elected to field after the first day was washed out.
Sri Lanka looked set for even worse but a determined century stand between Tillakaratne Dilshan (69) and Farveez Maharoof (46) pulled them out of deep trouble.
Dilshan and Maharoof added 111 for the sixth wicket after seamers Asif and Umar Gul struck telling early blows. Dilshan continued his fine form, striking 10 boundaries during his seventh half-century.
Dilshan, who scored 48 not out and 46 in his only two innings of a preceding three-match one-day series that Pakistan won 2-0, found good company in Maharoof who struck six fours.
Both batsmen were caught by Younis Khan in the slips.
Maharoof slashed at a ball from Asif and was caught at second slip. Dilshan followed him soon after when he edged a ball from Kaneria, who was bowling round the stumps.
Earlier, Asif struck in the first over of the match when he trapped opener Upul Tharanga (zero) leg-before with his fourth delivery and then bowled another left-hander Kumar Sangakkara (eight) with a ball that came in sharply.
Thilan Samaraweera (four) was bowled shouldering arms to Asif and with Gul striking twice, Sri Lanka were reduced to 32-5.
Gul bowled veteran opener Sanath Jayasuriya (six) and then Mahela Jayawardene fished outside the off stump to give him his second wicket.
Pakistan also failed to start well as Maharoof produced a double-strike to remove opener Shoaib Malik (13) and Younis Khan (zero) off consecutive deliveries.
Malik was caught at square-leg while Younis edged one to the wicketkeeper. The visitors fell to 28-3 after Lasith Malinga removed Faisal Iqbal (two) but Farhat and Inzamam steadied the innings with a defiant 94-run stand.
Sri Lanka have lost captain Marvan Atapattu and Chaminda Vaas to injuries and Jayawardene is leading the side. Pakistan are without middle-order batsman Mohammad Yousuf, who has a hamstring injury.
The second and final Test will be played in Kandy from April 3.
Sri Lanka 1st innings:
Fall of wickets: 1-0, 2-10, 3-18, 4-26, 5-32, 6-143, 7-149, 8-162, 9-177
Pakistan 1st innings:
Fall of wickets: 1-25, 2-25, 3-28, 4-122