The win has kept New Zealand’s semifinal prospects alive.
They were able to restrict Sri Lanka to 115 for five.
The spin trio of Otago’s Eden Carson (one for 19) and Wellington duo Leigh Kasperek (two for 27) and Kerr (two for 13) took all five wickets.
Kerr got the big wicket of the dangerous Chamari Athapaththu. The Sri Lankan captain tried to swipe a delivery over cow and dragged it on to her stumps.
She also trapped Kavisha Dilhari lbw with a googly late in the innings.
Kerr was influential with the bat as well. But Georgia Plimmer played the starring role and was named player of the match.
She seems to be finding her feet at international level in this tournament and swatted 53 from 44 in a 49-run stand with Suzie Bates (17).
Kerr and Devine (13 not out) did the rest. Devine clubbed a six to complete the win with 15 balls to spare.
The White Ferns’ final group A assignment is against Pakistan early tomorrow (New Zealand time).
Kasperek was satisfied with the performance against Sri Lanka.
"First and foremost we were looking for the win today and we’re really pleased to get that," she said.
"Obviously Sri Lanka are a really good side, so I think the batters did really well to chase what was quite a tricky total."
Kasperek said the White Ferns adopted a simple bowling game plan but perhaps offered a little too much width at times "and got punished a little bit".
"But I think all round it was a good performance."
That extra width translated into a few too many extras — 15 in total — so that is one area the White Ferns will be looking to tidy up.
South Africa climbed to the top of Group B with a comfortable seven-wicket victory over Bangladesh.
The Proteas restricted their opponent to 106 for three.
Sobhana Mostary top-scored with 38 for Bangladesh and captain Nigar Sultana added 32 not out.
But Tazmin Brits (42) and Anneke Bosch (25) got the bulk of the runs for South Africa in their chase, leaving Marizanne Kapp (13 not out) and Chloe Tryon (14 not out) to finish the job.
Tournament favourites Australia romped to a nine-wicket win over Pakistan.
Ash Gardner (four for 21) was influential. The right-arm spinner took three wickets in the 19th over to help roll Pakistan for 82.
Australia’s third win of the tournament came at a cost, however, as Tayla Vlaeminck dislocated her shoulder while trying to stop a boundary in the first over and captain Alyssa Healy (37) retired hurt with a calf injury.
SRI LANKA
V Gunaratne b Carson 8
C Athapaththu b Kerr 35
H Samarawickrama c Kerr b Kasperek 18
K Dilhari lbw Kerr 10
A Sanjeewani c Devine b Kasperek 5
N de Silva not out 14
A Kanchana not out 10
Extras (4 b, 2 lb, 8 w, 1 nb) 15
Total (for 5 wkts; 20 overs) 115
Fall: 1/26, 2/74, 3/76, 4/89, 5/97.
Bowling: R Mair 4-0-17-0 (3wd, 1nb), E Carson 4-0-19-1 (1wd), L Tahuhu 2-0-15-0 (3wd), L Kasperek 4-0-27-2, A Kerr 4-0-13-2, S Devine 2-0-18-0 (1wd).
NEW ZEALAND
S Bates b Nisansala 17
G Plimmer c de Silva b Athapaththu 53
A Kerr not out 34
S Devine not out 13
Extras (1 b) 1
Total (for 2 wkts; 17.3 overs) 118
Fall: 1/49, 2/95.
Bowling: S Kumari 3.3-0-23-0, U Prabodhani 3-0-17-0, S Fernando 2-0-20-0, K Dilhari 2-0-21-0, S Nisansala 4-0-24-1, C Athapaththu 2-0-8-1, A Kanchana 1-0-4-0.
Result: New Zealand won by 8 wickets.