Wicketkeeper Dinesh Chandimal was on 31 at University Oval, which had weathered heavy, but brief, rain and hail showers that forced the players from the field three times.
The last shower forced them off the ground with 20 overs remaining and umpires abandoned play at 1745 (0445 GMT) with captain Angelo Mathews scheduled as the next man in.
He will join Chandimal on Monday, when they have almost 98 overs to score an additional 296 runs.
“If we can get a good partnership in the morning session, the game is on,” left-arm spinner Rangana Herath told reporters.
“We need to play our brand of cricket and I'm sure Angie and Chandimal will do that.”
The visitors, who batted for 117 overs in their first innings, had been given 160 overs to score the 405 needed for an improbable victory after New Zealand captain Brendon McCullum had made a surprise declaration at 267-3 just before lunch.
Sri Lanka, just like their first innings, did not seem too pressed to take any unnecessary risks as they set about their run chase with openers Dimuth Karunaratne and Kusal Mendis taking 23 overs to reach 50.
Karunaratne (29) was the first batsman to fall when he tried to lift a short ball from Tim Southee over the slips to be caught by Watling, before Neil Wagner had Udara Jayasundera caught down the leg side by the wicketkeeper for three to leave them 69-2 at tea.
Mendis, who was dropped by Martin Guptill at second slip on 13 and by Watling on 25, was within sight of his first test half century on 46 when he nicked a Southee delivery to Watling, who took his ninth catch of the test.
Rain and hail then forced the players off.
The catch equalled the record for most dismissals in a test by a New Zealand wicketkeeper. Watling also made nine dismissals against India in 2014, while Brendon McCullum had nine against Pakistan in 2009.
McCullum, no doubt aware of possible disruptions with expected poor weather in Dunedin throughout Sunday, had surprisingly declared before lunch when he was on 17, having hit a six to take their lead past 400.
The six, the second of his short innings, also moved him into a tie with former Australian wicketkeeper Adam Gilchrist with 100 career sixes, the most in test cricket.
Opener Tom Latham was left on 109 not out having scored his first test century in New Zealand. His previous two test centuries were scored in the United Arab Emirates last year against Pakistan.
Original source: NZ sniff victory in Dunedin