After rattling India's top order on the opening day, Sri Lanka pace spearhead Suranga Lakmal returned to claim another wicket to end with fine figures of 19-12-26-4.
Lahiru Gamage, Dasun Shanaka and Dilruwan Perera also dished out superb bowling performances, snapping two wickets apiece to bring an end to India's first innings in 59.3 overs.
This was India's second lowest score against Sri Lanka at home after the hosts were dismissed for 167 at Chennai in December 2005. It is only the second time the islanders have dismissed India below 200.
Wriddhiman Saha (29 from 83 balls; 6X4) and Ravindra Jadeja (22 from 37 balls; 2x4, 1x6) produced a brisk 48-run seventh wicket partnership but off-spinner Perera (2/19) struck twice in space of three ball to remove both of them.
More From This Section
Perera broke the partnership as the tourists successfully used a review to overturn the decision of Joel Wilson who stood in for Richard Kettleborough who is down with a throat infection.
Two balls later, Saha got out with a faint edge which was taken by Angelo Mathews at the first slip as India reviewed unsuccessfully.
Bhuvneshwar Kumar (13 from 17 balls; 1x4) and Mohammed Shami (22 off 24 balls; 3x4) made some quick runs and the latter was involved in a 26-run last wicket partnership with Umesh Yadav (6 not out) to prop India's total.
Sun began to shine and the resolute Pujara showed India the way as he swept left-arm spinner Rangana Herath through fine leg in the fourth ball of Sri Lanka's seniormost bowler.
Overnight six, Saha gave Pujara a fine support and looked in good nick with his offstump guard outside the popping crease.
It was in fifth over of the day, Gamage gave the day's first breakthrough when he cleaned up Pujara with a beauty.
The ball sharply cut in sneaking through Pujara's solid defence as the most dependable Indian batsman looked clueless as his long innings came to an end in the 38th over.
It was India's consolidation phase and to make it worse for Sri Lanka, wicketkeeper Dickwella missed an easy stumping when Saha was on 25 in the 50th over.
The Indian duo however could not make it big as the offspinner evicted both of them in space of three balls before Shami's quickfire cameo took them to 172.
Gamage brought India's innings to a close at 59.3 overs, six minutes ahead of the scheduled lunch time after dismissing Shami, who was caught at deep midwicket.