Sri Lanka will need to chase 332 to win their World Cup opener with New Zealand in Christchurch.
The Kiwis scored heavily, smashing the Sri Lankan attack to all parts of the Hagley Oval as they reached 111-0 in the 16th over.
When Brendan McCullum (65) was removed by Rangana Herath, the tournament co-hosts saw their run-rate dip.
After Martin Guptill (49) was caught by Kumar Sangakkara, Kane Williamson (57) helped rebuild the New Zealand innings before both he and Ross Taylor were dismissed in successive balls.
However, the home side recovered again as Corey Anderson top-scored with 75 off 46 balls to help the hosts post an imposing total of 331-6.