The Blacks Caps, who lead the seven-match series 1-0, appeared set for a mammoth total when McCullum smashed 117 after winning the toss but Sri Lanka piled on the pressure to have them all out for 248 at the end of 50 overs.

Sharp fielding and consistent bowling from Angelo Mathews' men on a tame Seddon Park wicket forced four run-outs and a stumping as New Zealand lost their composure without skipper McCullum at the crease.

They threw away wickets chasing suicidal singles, squandering the opportunity to put the match beyond Sri Lanka's reach.

The visitors struck early when opener Martin Guptill departed for 10 trying to loft Nuwan Kulasekara over mid-off, sending the ball straight to Mathews to continue an indifferent run of form at international level.

McCullum responded to the setback with typical aggression, bringing up his second consecutive 50 in 39 balls, including eight boundaries.

He continued to play his shots even when Sri Lanka's decision to play a second spinner paid dividends as Rangan Herath coaxed an outside edge to dismiss Tom Latham for five.

With fellow veteran Ross Taylor grafting away at the other end, McCullum completed his century with a boundary after 88 balls.

It was only the fifth time in 203 one-day innings that McCullum has managed to covert his 28 half centuries into a ton, sending an ominous message to World Cup rivals that he is finally reproducing his Test form in the limited overs arena.

The 33-year-old then survived a mix-up between the wickets that left him stranded but fell a few balls later when a diving Jeevan Mendis had him caught and bowled for 117.

McCullum's departure sparked a flurry of dismissals, with New Zealand losing four wickets for 14 runs.

Dan Vettori lasted only eight balls before he was run-out for seven and Taylor was sent packing on 34 when he skied a Herath delivery trying to push the pace.

Luke Ronchi did not face a ball before he was run-out and Corey Anderson (5) was caught short of his crease chasing a quick single in the next over.

Nathan McCullum looked to be steadying the innings before a rush of blood to the head saw him become New Zealand's fourth run-out.

Adam Milne (17) added some variety when he took a wild swing at Sachinthra Senanyake's delivery, stumbled out of his crease and was stumped by wicketkeeper Kumar Sangakkara on 17.

Trent Boult (13) added two valuable sixes before he was caught trying for a third off the last ball of the innings.

Latest News from Sports News Desk