Fly-half Aaron Cruden slotted 15 points with the boot as the All Blacks took nearly every scoring opportunity they had and played an intelligent game built around kicking behind the French line and keeping them pinned in their territory.
All Blacks captain Kieran Read said his team had been clinical in taking their chances.
"Extremely happy," he said in a televised interview. "When we got opportunities we really made them pay."
New Zealand won the first match 23-13 at Eden Park in Auckland last week and the final test is in New Plymouth next week.
The All Blacks got on the board early when Ma'a Nonu produced a deft kick behind France's flat defence and Savea ran on to record his 13th test try, which Cruden converted.
France fly-half Frederic Michalak had two opportunities to get the visitors on the board but failed with a drop goal in the 18th minute and missed a penalty in the 20th.
Cruden extended the lead two minutes later when the French were penalised on their line after the All Blacks had swept down field following two surging runs by Read, playing his 50th test, and prop Wyatt Crockett.
The All Blacks went into the break at 10-0 but found themselves desperately defending on their line for the first eight minutes of the second half.
After some 20 phases, the French swung the ball back to Michalak for a drop goal, only for Sam Cane to charge the ball down.
The All Blacks quickly moved onto attack with Savea coming from the left wing across to the right, where he drew the last defender and put Smith away to the roars of the crowd.
Cruden's conversion knocked much of the spirit out of the French and the flyhalf added two further penalties before Barrett finished a length of the field try after some outstanding work by Israel Dagg, Rene Ranger and Conrad Smith.
France number eight Louis Picamoles went off with what appeared to be a knee injury early in the second half while Michalak was also forced off towards fulltime with what looked like a collarbone or shoulder injury.