Sri Lanka lost 10 wickets for 62 runs in their second innings as New Zealand moved within sight of victory in the second Test between the two sides.
The tourists were 71-1 in the second innings before they collapsed to 133 all out, with Kiwi bowler Tim Southee taking 4-26.
New Zealand were 11-2 but recovered to end day three on 142-5 as they chased a victory target of 189.
Kane Williamson was 78 not out for the hosts, who won the first Test.
However, Williamson was limping during his innings and was seen to have heavy strapping around his right knee.