Chittagong - Rangana Herath finished with a brilliant figure of 5/3 to restrict New Zealand to 60/9 after Sri Lanka scored a moderate 119 in their last Super 10 match, securing an emphatic 59 run-win and guiding his team to semifinals.
Except Kane Williamson, who made 42, no other New Zealand batsmen managed to cross even double figure as Sri Lanka finished top in Group 1.
After Martin Guptill got run out at the score of 18, Herath ripped through the Lankan top order by dismissing Brendon McCullum, Ross Taylor, Jimmy Neesham and Luke Ronchi in quick succession.
While Guptill made 5 before getting run, McCullum failed to even get off the mark and was stumped out by Rangana Herath in the fourth over.
Herath then struck twice in the sixth over and scalped Taylor (0) and Neesham (0) in consecutive deliveries.
The spinner first trapped Taylor in front of wicket while Neesham, who shone with the bowl earlier during the day, was bowled out.
In his next over Herath increased Kiwis worries by trapping Ronchi (2) leg before, reducing them to 29/5.
Spinner Sachithra Senanayake also joined the party, removing Nathan McCullum to leave New Zealand tottering at 33/6 in 9.3 overs.
Earlier, Trent Boult and Jimmy Neesham claimed three wickets apiece as New Zealand bowled Sri Lanka out for a moderate 119 with four balls to spare.
Boult, with a career best 3/20, ripped through the top order while Neesham, who had figures of 3/22, cut through the tail as Sri Lanka stumbled.
Mitchell McClenaghan gave support with 2-24.
Mahela Jayawardene scored 25 for Sri Lanka, while Lahiru Thirimanne made 20. Sachitra Senanayake, who made 17, helped Sri Lanka to get past 100.
Earlier, New Zealand pacer Trent Boult put Sri Lanka on back foot with early wickets after they were invited to bat.
Boult ripped through the Lanka top order and dismissing Kusal Perera, Tillakaratne Dilshan and Kumar Sangakkara in his consecutive overs to reduce them to 35/3 in seven overs.
Boult got Kusal Perera (16) caught behind in the second over after he gpt lanka off to a flying start. Perera hit two boundaries and a six during his 8-ball stay before falling at the score of 20.
In his next over, Boult got rid of Dilshan (8) in the same fashion.
Sangakkara (4) too found Boult hot to handle and got caught at mid off by Corey Anderson while trying to drag the pacer from outside off.
Jimmy Neesham dealt fourth blow on the Lankans by ending the challenge of Lahiru Thirimane after his 18-ball-20, leaving them at 65/1 in 11.1 overs.
Pacer Mitchell McClenaghan then joined the party and provided New Zealand fifth success by getting Angelo Matthews (6) caught behind.
Jayawardene was the sixth man to fall as he was bowled out by spinner Nathan McCullum in the 15th over after a steady knock of 25
Sri Lanka, who are playing without regular skipper Dinesh Chandimal due to one-match suspension on him, have Lahiru Thirimanne in the batting line up.
They have also replaced Ajantha Mendis with Rangana Herath. Lasith Malinga is leading the Sri Lankan side.
Both teams are on four points each from three games and the winner of Monday's Super 10 match at Zahur Ahmed Chowdhury Stadium will decide which side will join South Africa in the semifinals from Group 1.
South Africa have finished their Super 10 engagements and have qualified for the semifinals with six points from four matches.
Teams
Sri Lanka - Tillakaratne Dilshan, Kushal Janith Perera, Mahela Jayawardene, Kumar Sangakkara (wk), Angelo Mathews, Lahiru Thirimanne, Thisara Perera, Nuwan Kulasekara, Lasith Malinga (Capt.), Sachithra Senanayake, Rangana Herath
New Zealand - Martin Guptill, Kane Williamson, Brendon McCullum (Capt.), Ross Taylor, Corey Anderson, James Neesham, Luke Ronchi (wk), Nathan McCullum, Trent Boult, Kyle Mills, Mitchell McClenaghan
Brief scores
Sri Lanka - 119 (Jayawardene 25, Boult 3-20, Neesham 3-22)
New Zealand - 60 (Williamson 42, Herath 5-3)
Result - Sri Lanka won by 59 runs
Points - Sri Lanka 2, New Zealand 0
MOM - Rangana Herath (Sri Lanka)