Led by a breezy 74 from Jesse Ryder, who was subsequently ruled out of the rest of this tournament with a groin strain, New Zealand sent Sri Lanka to the brink of elimination from the Champions Trophy with a 38-run defeat.
Batting first on what turned out to be a good surface for those willing to bat positively, New Zealand turned on the heat. Ryder, despite being unable to run and in considerable pain, stood and delivered.
His shots punched holes through the off side field with regularity and Sri Lanka's bowlers struggled for rhythm.
Martin Guptill (66) hit cleanly through the line, lofting the ball back over the bowler's head on more than one occasion, and despite losing wickets, the Kiwis kept up a good run rate.
Sri Lanka, who chose to go into this game without Muttiah Muralitharan, giving left-arm seamer Thilan Thushara a chance, could barely stem the flow of runs as New Zealand put 315 on the board.
For Sri Lanka to chase down the big total, they needed one of their top-order to play a blinder.
Both Sanath Jayasuriya and Tillakaratne Dilshan took up the challenge, but neither could convert a start, falling to pull shots.
Mahela Jayawardene and Kumar Sangakkara were both dropped early in the piece, but the latter chanced his arm one time too many and was caught at slip.
Mahela Jayawardene (77) defied New Zealand's bowlers but began to run out of partners. With the required run rate staying consistently over six, there came a time when chances had to be taken and Jayawardene missed a quicker ball from Daniel Vettori and was clean bowled.
At this stage, Sri Lanka still needed 97 from 70 balls with only the tail to follow, and the match as a contest ended.
Even a spirited maiden ODI half-century from Nuwan Kulasekara only whittled down the margin.
New Zealand : B McCullum c Dilshan b Mathews 46, J Ryder c Sangakkara b Kulasekara 74, M Guptill b Malinga 66, R Taylor c Jayawardene b Jayasuriya 4, M Elliott lbw b Mathews 0, N Broom c Mahela b Jayasuriya 15, D Vettori c sub b Jayasuriya 48, J Franklin 28 not out , K Mills 18 not out
Extras (b3, lb2, w8, nb3) 16
Total (7 wkts, 50 overs) 315
FoW: 1-125, 2-128, 3-133, 4-140, 5-161, 6-230, 7-284
Bowling: Nuwan Kulasekara 7-0-52-1, Thilan Thushara 7-0-50-0, Lasith Malinga 10-0-84-1, Ajantha Mendis 9-1-49-0, Angelo Mathews 6-0-33-2, Sanath Jayasuriya 10-0-39-3, Thilina Kandamby 1-0-2-0
Sri Lanka : T Dilshan c sub (Patel) b Mills 41, S Jayasuriya c Mills b Tuffey 24, K Sangakkara c Taylor b Franklin 11, M Jayawardene b Vettori 77, T Samaraweera c Broom b Vettori 17, T Kandamby run out (Vettori/Elliott) 11, A Mathews c Guptill b Franklin 2, N Kulasekara 57no, T Thushara c Guptill b Mills 11, L Malinga c Taylor b Mills 15, A Mendis c Vettori b Tuffey 3
Extras (lb 2, w 5, nb 1) 8
Total (all out; 46.4 overs) 277
FoW: 1-66, 2-67, 3-85, 4-114, 5-137, 6-141, 7-219, 8-243, 9-262
Bowling: Kyle Mills 10-0-69-3, Shane Bond 9-0-82-0, Daryl Tuffey 8.4-1-39-2, James Franklin 9-0-40-2, Daniel Vettori 10-0-45-2