Sri Lanka set Zimbabwe a target of 237 and the host’s batsmen responded with a new sense of self-belief and composure under new coach Alan Butcher, reaching 240-2 in 47.5 overs.
They’d dismissed Sri Lanka for 236, also in 47.5 overs, after the Sri Lankans enjoyed an opening stand of 122.
The teams will meet again in the final on Wednesday, having already eliminated India.
In-form Taylor faced 136 balls, blasting eight boundaries and a six in an innings full of brilliant strokeplay and timing.
The Zimbabwean chase suffered an early blow when opener Hamilton Masakadza top-edged a Thushara Mirando delivery on 3 and was caught behind by wicketkeeper Dinesh Chandimal in the fifth over.
Taylor and Chamu Chibhabha then put on a second-wicket partnership of 134 from 169 deliveries.
Chibhabha, playing for the first time in the series in place of the injured Greg Lamb, played an anchoring role, sitting back and letting Taylor find the gaps. He was dismissed for 58 from 103 balls after being trapped in front by Sri Lanka captain Tillakaratne Dilshan in the 32nd over.
Taylor played on, steering Zimbabwe to a comfortable win as TatendaTaibu, 42 not out, gave him good company.
Earlier, Zimbabwe’s bowlers recovered from an early bashing after half-centuries by openers Dilshan (78) and Upul Tharanga (69) put Sri Lanka in the driving seat.
The two punished the host’s wayward bowling, with seamers Elton Chigumbura and Chibhabha struggling.
The ruthless Dilshan faced 66 balls, cracked nine boundaries and two sixes, while Tharanga’s 69 came off 97 balls in their best opening stand of the series.
The partnership yielded 122 off 123 deliveries from 20.2 overs until Dilshan missed a straight Prosper Utseya delivery to be stumped by wicketkeeper Tatenda Taibu.
From there, Zimbabwe managed to staunch the run flow and Sri Lanka’s threat to make close to 300 diminished as offspinners Utseya and Ray Price and legspinner Graeme Cremer kept the batsmen in check with good variation.
Tharanga was out in the 36th over when he mis-hit Cremer and Charles Coventry took a diving catch in the deep.
Pace bowler Chris Mpofu bowled admirably at pace at the end to claim 2-32, while Utseya ended with 2-41 off his 10 overs. Sapa/Ap