Hagley Oval, with its green-tinged wicket, was tailor-made for New Zealand's swing and seam attack and Tim Southee set the standard with the opening ball, a huge inswinger to Dean Elgar that finished down leg side.
With the 10th ball of the match, Henry started the rout when he had Elgar caught at third slip with a ball that nipped away, and after 49.2 overs South Africa were all out for their lowest ever score against New Zealand.
New Zealand faced 39 overs in the final session, losing Will Young for eight when he edged a rising delivery from Marco Jansen to wicketkeeper Kyle Verreynne.
Captain Latham, who had a life on nine when Jansen spilled a chance in the gully, progressed to 15 before he was bowled by Duanne Olivier.
Olivier thought he had Nicholls for five but the ball was dropped at third slip, one of six dropped catches by the tourists, and the batsman responded by cracking boundaries off the next two deliveries.
Just before stumps the South African snared a second wicket when he bowled Devon Conway for 36.
Henry, whose previous best was twice taking four for 93, has struggled to be a regular member of the New Zealand attack, where Tim Southee and Trent Boult have long been the new-ball bowlers.
But with Boult on paternity leave, the Christchurch-born Henry relished the chance to perform in front of his home crowd and produced the third-best figures by a New Zealand bowler.
He ripped through the South African top order to have three wickets in the morning session when South Africa went to lunch at four for 44 and took four more in the second session before the innings folded just before tea.
When South Africa looked to be showing some resistance with Zubayr Hamza and Verreynne in a 33-run partnership, Henry triggered a four-wicket slump which saw the tourists fall from five for 86 to nine for 88.
He removed Hamza, playing his first Test in two years, for South Africa's top score of 25 and then in one maiden over claimed Verreynne (18), Kagiso Rabada and debutant Glenton Stuurman.
Aiden Markram (15) and debutant Sarel Erwee (10) were the only other batsmen to reach double figures.
Erwee started confidently and left well as the ball moved into and away from the batsmen.
But towards the end of his 30-ball stay there were emerging signs of indecision and when he prodded at a rising delivery from Kyle Jamieson the ball was edged to Daryl Mitchell at first slip.