His whirlwind performance overshadowed a century by Jesse Ryder as the pair took New Zealand to 283-4 in a match reduced to 21 overs each side.
Anderson -- who finished not out 131 -- took a mere 36 deliveries to reach his century, beating the previous record set by Shahid Afridi, who needed 37 balls to reach three figures playing for Pakistan against Sri Lanka in 1996.
The burly New Zealander hit 14 sixes, the third highest in an ODI innings behind Rohit Sharma (16) for India against Australia two months ago and Australia's Shane Watson (15) against Bangladesh in 2011.
After the start of the game was delayed five hours because of the weather, Ryder set the tone for the New Zealand innings when he cracked a boundary from the first ball he faced.
More From This Section
The demise of fellow opener Martin Guptill (one) was only a matter of time. He was all at sea against the bounce generated by Jason Holder and after surviving two caught behind appeals there was no mistake with the third.
Brendon McCullum belted a 33 off 11 deliveries as New Zealand raced past 50 in just 26 balls and Ross Taylor came and went quickly for nine.
Anderson brought up his 50 in 20 deliveries in an over in which he hit four sixes in a merciless attack on the usually tight bowling of spinner Sunil Narine.
In a near chanceless innings he only faced 47 balls for his 131 while Ryder faced 51 balls for his 104 which included five sixes.