Apart from a 50-run partnership between Upul Tharanga and Chamara Kapugedera for the fourth wicket, the Sri Lankan batsmen put up scant resistance and the innings folded just before the scheduled tea break on Thursday.
They went to lunch at 77 for three and after the break lost their last seven wickets for 77.
New Zealand strike bowler Shane Bond was at his hostile best, cleaning out Sri Lanka's most experienced trio to finish with three for 43 as Mahela Jayawardene's decision to bat first on a green pitch with overcast conditions backfired.
Bond struck first in the third over of the morning capturing his first Test wicket on his home track with a ball that swung away from Sanath Jayasuriya and was edged to Stephen Fleming at first slip.
Two overs later he dismissed Kumar Sangakkara with a similar ball that flew to Mathew Sinclair, and Bond completed his rout of the top order with a short ball that Jayawardene skied the ball to James Franklin at fine leg.
But while Bond won plaudits for his bowling he was not so shining in the field where he dropped two late catches while Muttiah Muralitharan engaged in lusty hitting for a 22-run final partnership with Lasith Malinga.
James Franklin also took three wickets, including both Tharanga and Kapugedera just after lunch, to return the figures of three for 30.
Chris Martin's dismissal of Prasanna Jayawardene saw the right armer become the 11th New Zealander to take 100 Test wickets.