Herath turned the virtual knock-out match on its head by grabbing five wickets for just three runs in a sensational spell while also being instrumental in a run-out which opened the floodgates as Sri Lanka defended a small total of 119 all out in their last Group 1 match.
Herath's 5/3 was the third best ever figures by a bowler in Twenty20 Internationals behind team-mate Ajantha Mendis' twin efforts of 6/8 and 6/16.
Sri Lanka will now take on Group 2 runners-up team, which will be decided after tomorrow's match between West Indies and Pakistan, on April 3 at Mirpur. Group 2 winners India will take on Group 1 runners-up South Africa on April 4, also at Mirpur.
New Zealand suffered a jolt even before their run chase as their key player Corey Anderson was taken to hospital after dislocating his finger while attempting a catch during Sri Lanka innings. Anderson did not come out to bat.
But the drama unfolded in the very first ball of the third over bowled by Herath as New Zealand opener Martin Guptill ran for a single without response from his partner Kane Williamson. Herath was lightning quick to throw the ball to wicketkeeper Kumar Sangakkara who whipped off the bail in a flash.