The tourists' tries came from Kieran Read, Ma'a Nonu, Cory Jane and Julian Savea, with two. Aaron Cruden kicked their remaining 17 points.
Leading 13-7 at half -ime, the All Blacks had to wait until the 49th minute before they registered a second try when Nonu crashed over from close range. Late touchdowns from Jane and Savea completed the victory. Italy far exceeded their tepid display against Tonga last weekend and left a lasting impression on All Blacks coach Steve Hansen.
"I'd like to congratulate Italy on playing a great game of rugby," he said. "They came to play rather than keep the score down."
Despite Italy's strong start, the visitors opened the scoring with a Cruden penalty. Kieran Read added their first try soon afterwards.
After a second penalty from Cruden, Alberto Sgarbi got Italy up and running with a 25th-minute try.
Cruden made it 16-7 to New Zealand early in the second half, then converted Nonu's try.
Luciano Oquera moved Italy on to 10 points with a drop goal, but Jane then went over for the All Blacks, before Savea scored twice in the final seven minutes.
Italy captain Sergio Parisse said: "We were up against a great side, but it's upsetting to lose like that. However, we showed we can make plays and cause problems. We tried to play more interesting rugby than we have in the past, we looked to involve the backs."
Opposite number Read, captaining New Zealand for the first time, said: "The match was a great advertisement for the game. Italy put a lot of heat on us early on which we expected, and they're a top side now."
An Ireland XV beat Fiji 53-0 at Munster's Thomond Park. Ulster winger Craig Gilroy scored a hat-trick of tries and Fergus McFadden a double. The other scores came from Sean Cronin, Darren Cave and Luke Marshall.