Henry, whose previous best was four for 93 against South Africa four years ago, 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.
With his fourth ball he removed South African skipper Dean Elgar for one with a ball that nipped away off the pitch.
When South Africa looked to be showing some resistance with Hamza and Kyle Verreynne putting on 33 for the sixth wicket, Henry removed the pair along with Kagiso Rabada and debutant Glenton Stuurman in an eight-ball burst.
Alongside Henry, Tim Southee, Kyle Jamieson and Neil Wagner each took one wicket.