Set a target of 115, New Zealand cruised to victory.
Georgia Plimmer, a 20-year-old opener, hit 53 before captain Sophie Devine smashed the only six of the match to take her team to 118 for two with 15 balls left.
New Zealand stayed third in Group A behind Australia, who have won all their games, and India, who have a superior run rate despite New Zealand's late surge on Saturday.
Devine said the White Ferns did not discuss run rate before starting their chase. "We know that winning the game was the most important thing," she said.
Australia and India meet in their last group game on Sunday. New Zealand face Pakistan on Monday.
"We see how results play out tomorrow and we have our final game against Pakistan and by that point we'll know exactly where we stand an what's going to be required," said Devine.
Sri Lanka, who came into the tournament as Asian champions but then lost their first three games, opted to bat.
Captain Chamari Athapaththu opened and made the top score of 35 as her team passed 100 for the first time in the tournament, reaching 115 for five wickets.
Neither captain was happy after the Sri Lankan innings. "We improved a little bit today but we needed another 20-25 runs," said Athapaththu. "I don't think we've bowled as well as we know we can," said Devine.
New Zealand started carefully. Opener Suzie Bates hit one four in her 17.
Despite scoring at almost a run a ball, Plimmer hit only four fours and had to run for most of her 53 on a day when temperatures hit 39 degrees Celsius.
When she finally went for power and took to the air, she was caught in the deep mid-wicket by Nilakshi de Silva off the bowling of Athapaththu.
Amelia Kerr, who hit 34 to follow her two wickets, and Devine, who made 13, sped New Zealand to victory with a late flurry of boundaries.
"Georgia Plimmer outstanding today," said Devine. "Super proud of her. The youngster coming out there and sticking to her strengths and taking the game on is exactly what we've asked for."