Fast bowler Southee, who took five wickets in the first innings, continued to trouble the Sri Lankan batsmen as he removed openers Tharanga Paranavitana and Tillakaratne Dilshan in his lively opening spell.
Paceman Bracewell then grabbed two big wickets when he bowled Kumar Sangakkara (16) and had skipper Mahela Jayawardene (five) caught behind.
New Zealand skipper Ross Taylor, who scored a hundred in the first innings, top-scored with 74 after his team had lost three wickets for one run off four balls.
New Zealand, leading by 168 runs, declared their second innings at 194-9 to set a challenging target for the hosts, who lead the series 1-0 following their 10-wicket win in the opening Test.
The tourists slipped from 74-2 to 75-5 before Taylor and debutant Todd Astle (35) steadied the innings with a 97-run stand for the sixth wicket.
Paceman Nuwan Kulasekara had Kane Williamson (18) caught by Paranavitana in the slips and then trapped Daniel Flynn leg-before with the last two balls of his eighth over.