The pair put on 123 for the second wicket before both being dismissed in the final session as England reached 202 for three at close of play.
Vince made 76 and Stoneman a personal best 60 while Joe Root was not out 30 with Dawid Malan on 19.
New Zealand, who started the day at 192 for six, were all out for 278, allowing England to start their second innings 29 ahead.
Alastair Cook went early for 14, continuing a disappointing run for the opener in which he has totalled only 23 in four innings in New Zealand, and has been removed by Trent Boult each time.
But Vince and Stoneman put England's innings back on track, helped by a benign wicket which offered little assistance to the bowlers.
Stoneman, whose previous best was 56 in the third Test against Australia three months back, had an anxious moment on 35 when given out caught behind, but the decision was overturned on review.
On 48 he was dropped by Ross Taylor at first slip and he brought up his 50 with a nick off Tim Southee that sailed just past the outstretched arm of wicketkeeper BJ Watling to the boundary.
But on 60 his luck ran out when he tried beating the cordon once too often and another edge off Southee was pouched by a diving Watling.
Vince went in similar fashion when he nicked Boult to the sole slip Taylor who made no mistake with the second chance to fly his way.
Root and Malan carried England through until bad light stopped play three overs early and will face a further 14 overs on Monday before the new ball is due.
The New Zealand first innings survived nearly 20 overs at the start of the day.
Watling advanced his overnight 77 to 85 before he was beaten by a demanding delivery from Jimmy Anderson which swung in towards the pads then nipped away to remove the off-stump.
Ish Sodhi had a brief stay for one, and Tim Southee, who had shared a 48-run stand with Watling, reached 50 -- his fourth Test half century -- when he was bowled by Anderson.
Neil Wagner and Boult put on a rollicking 39 off 42 deliveries for the last wicket before Boult was out for 16, leaving Wagner unbeaten on 24.
Stuart Broad finished with six for 54, the ninth-best return in his storied 115-Test career, while Anderson took four for 76.
BJ WatlingChristchurch TestJames AndersonJames VinceMark Stonemannew zealand vs englandross taylorstuart broadTrent Boult
First Published: April 1, 2018, 12:19 PM IST