Bowled out for only 154 in its first innings after winning the toss and batting, Sri Lanka fought back to dismiss New Zealand for 206, before collapsing again to be 124 for eight at stumps.
Fast bowler Shane Bond claimed four wickets Friday, after taking three in Sri Lanka's first innings, to send the tourists spinning towards a heavy defeat and a 1-0 deficit in the two-Test series.
Bond dismissed Chamara Kapugedera, Chamara Silva and opener Upul Tharanga, ran out Sanath Jayasuriya and Prasanna Jayawardene, then returned near stumps to capture the wicket of Farveez Maharoof and to leave Sri Lanka clinging to survival.
Sri Lanka's second innings collapse undermined an outstanding effort by bowlers Muttiah Muralitharan and Chaminda Vaas who put the tourists back in the match after their paltry first innings.
Muralitharan took four wickets for 65 runs and Vaas three for 49 as Sri Lanka limited New Zealand to a 52-run first innings lead.
New Zealand resumed Friday at 85 for two, apparently well placed to establish a substantial first innings advantage but Muralitharan and Vaas captured four wickets in the space of seven runs Friday to rip the heart out of its innings.
Their combined effort sent New Zealand tumbling from 106 for two to 113 for six and ensured the Sri Lankans would achieve some parity after their poor start.
New Zealand captain Stephen Fleming and Daniel Vettori joined in a 75-run partnership for the seventh wicket which helped New Zealand to 188 for seven before it slumped again, losing its last four wickets for 18 runs.
Vettori top scored with 63 and Fleming made a diligent 48 to help New Zealand to an important lead in a fast-moving match.
``Someone has pressed fast forward on this game, there's no doubt about that,'' Fleming said. ``It's been an interesting Test.
``We're certainly going forward on right side of it at the moment. They are a tough bowling outfit. They have some great variations and some freakish bowling actions. We saw the best of one of the world's greatest bowlers (Muralitharan) today but our boys did just as good a job.
Muralitharan found sharp turn and bounce to dismiss Craig Cumming for 43, Nathan Astle for 2, Shane Bond for 1 and James Franklin without scoring. Vaas took the wickets of Jacob Oram (1) and Brendon McCullum (0) in the same over to dissect the remainder of New Zealand's middle order.
Sri Lanka's effort to erase the first innings deficit was quickly imperiled by Bond's outstanding contribution. He began by running out Sanath Jayasuriya at the non-striker's end, then removed Tharanga (24), Kapugedera (1) and Silva (0) before Sri Lanka had forced New Zealand to bat again.
Kumar Sangakkara stood against the carnage, batting diligently to reach 63 not out at stumps.