Chris Killen put the visitors ahead in the 16th minute, but Dario Vidosic tied the score in the 57th minute before a crowd of 55,659.
The All Whites, ranked 78th in the world, outplayed the Socceroos, ranked 58 places higher.
Killen hit the post in the 24th minute with a swinging volley.
The Socceroos were also lucky not to be reduced to 10 men after a two-footed challenge by midfielder Vince Grella on All Whites winger Leo Bertos resulted in a yellow card instead of a red. Cahill was given a yellow card for a challenge on Bertos a few minutes later.
New York Red Bulls defender Andrew Boyens entered in the 51st minute for New Zealand. Jeremy Christie, a midfielder on the minor league Tampa Bay team in the U.S. Soccer Federation division two league, dressed but didn't play.
"It wasn't the best of performances, but a win is good," said Holman, a second-half replacement for Everton's Tim Cahill. "We'll take a lot of confidence to South Africa."
Reading goalkeeper Adam Federici made his international debut for Australia in place of Fulham's Mark Schwarzer,
Schwarzer, who sprained a thumb in training last week, missed Australia's last home game ahead of the World Cup along with Harry Kewell, who has a persistent groin problem. Brett Emerton, Luke Wilkshire, Scott Chipperfield and Josh Kennedy also were missing.
Australia coach Pim Verbeek planned to cut his roster from 31 to 27 on Tuesday, a day before the team leaves for South Africa. Teams must submit 23-man rosters to FIFA by June 1.
The Socceroos have a pair of exhibitions in South Africa, meeting Denmark on June 1 and the United States four days later. Australia opens its Group D play at the World Cup against Germany on June 13.
New Zealand's first match in Group F is against Slovakia in Rustenburg on June 15.