Sri Lanka, set 220 to win, finished on 222 for four to move level on eight points with New Zealand and champions Australia, who have played four games to their title-rivals five.
Sanath Jayasuriya, who made 64, and Kumar Sangakkara, unbeaten on 69, shared a second wicket stand of exactly 100 in 21 overs that all but sealed victory for Sri Lanka after left-arm quick Vaas took three for 33.
Thursday's defeat, with 39 balls to spare, left New Zealand still needing one more win from their final two Super Eights games, both in Grenada, against South Africa on Saturday and Australia a week Friday, to be certain of a semi-final spot.
And the loss also saw them fall one short of equalling their 2004 record of 10 straight one-day international wins after they'd played one of the leading contenders in this World Cup for the first time.
Sri Lanka return here Monday to face Australia.
Vaas, 33, dismissed both New Zealand captain Stephen Fleming and Ross Taylor for nought before all-rounder Scott Styris, in at four for two, scored more than half his side's runs with a composed 111 not out.
The Black Caps couldn't afford any drops but they missed Sangakkara on nine when he played early at a slower ball from spearhead quick Shane Bond only for Craig McMillan to floor the chance at mid-on.
First change Mark Gillespie saw his opening over of the tournament cost 17 runs, Jayasuriya dismissing his first two balls for six and four in the bowler's comeback match following a right shoulder injury.
Sri Lanka posted a run-a-ball fifty before Fleming dropped Jayasuriya, on 30, at short mid-wicket off Gillespie.
Jayasuriya completed a 65-ball fifty with one six and three fours.
However, his cut off Jacob Oram was held by Brendon McCullum, the wicket-keeper standing up, Sri Lanka 130 for two.
Left-arm spinner Daniel Vettori then became only the third New Zealander after Chris Harris (203) and Chris Cairns (200) to take 200 one-day international wickets when he had Sri Lanka captain Mahela Jayawardene caught at mid-wicket by substitute fielder Hamish Marshall for 15.
Such was Sri Lanka's dominance, Sangakkara eased his way to an 86 ball fifty with one four.
Earlier off-spinner Muttiah Muralitharan, like Vaas and Jayasuriya a member of Sri Lanka's 1996 World Cup-winning side, took three for 32 after the quick's early strikes.
Murali joined Malinga - ruled out with left ankle ligament damage - and Australia's Glenn McGrath as the tournament's leading wicket-taker with 15.
Vaas needed just five balls to have opener Fleming lbw for nought.
Taylor, in for Marshall after a hamstring injury sidelined him for four games, then edged Vaas and keeper Sangakkara held a diving, one-handed catch.
Styris - who took 20 balls to get off the mark - counter-attacked and was severe on Farveez Maharoof, Malinga's replacement and the only change to the side that beat England by two runs in Antigua.
New Zealand went 19 overs without a boundary until Oram struck spinner Tillakaratne Dilshan for six.
But two balls later, he skied to long-on where Maharoof held a fine catch.
Styris, 31, completed his fourth hundred in 130 matches at this level, off 152 balls, by pulling fast bowler Dilhara Fernando for his seventh boundary before smashing the last ball of the innings, from Vaas, to the rope.