Williams had two break points when Ivanovic was serving for the match but the Serb held her nerve.
"It was very tough,'' Ivanovic said. "Venus showed once again what a great sport she has been over the past years and I hope for many more years to come.
"At the end of the second set I made a few errors that I didn't make up to that point. I really tried to still play, enjoy it, move forward and be aggressive. It's been a great atmosphere all week and I really enjoyed today's final, too."
It was Ivanovic's second win in 10 matches between the two and first since the quarter-finals of the 2008 Australian Open. It was also her 12 WTA title and first since Bali in 2011.
Her serve was a lot more consistent - she hit 67 per cent of her first serves to Williams' 51 - she moved well and hit a number of quality forehand winners. She also fought hard, holding two crucial service games in the final set when facing break points.
The Serbian dropped to the ground in celebration after Williams sent a forehand long on match point.
She vowed to return next year, minutes after collecting US$43,000 for winning the tournament.
"Definitely," she said. "It's already in the calendar."
Williams also expressed her desire to return and admitted she had already told sister and world No 1 Serena they should play in Auckland in the future but she also acknowledged she was beaten by the better player today.
"She played so well," she said. "We have had a lot of great matches and this is yet another one. I just kept fighting, despite the odds. She was playing so well and I'm glad we were able to put on such a great final."