Jayawardene's 115 not out was the centrepiece of an imposing total of 289 for five and showed the value of a well-paced innings after he'd taken 28 balls to score his first boundary.
Dropped on 70, in all he faced 109 balls with three sixes and 10 fours after winning the toss in what was his first hundred in 23 World Cup matches.
New Zealand faced a tough chase if they were to reach their first World Cup final, with middle-order hitter Craig McMillan uncertain to bat after being off the field for most of Sri Lanka's innings with a stomach muscle injury.
Earlier, opener Upul Tharanga struck a tournament best 73 to make sure Sri Lanka recovered well after Sanath Jayasuriya fell early on for one.
Together with Tillakaratne Dilshan, Jayawardene put on 81 for the fifth wicket before a rapid unbroken stand of 56 with Russel Arnold (14 not out).
Crucially, Sri Lanka lost just one wicket to spearhead quick Shane Bond who was returning after missing Friday's 215-run thrashing by Australia with a stomach illness.
The fast bowler's 10 overs cost 59 runs and it was he who dropped Jayawardene as Sri Lanka's captain led a charge that saw 102 runs scored off the last 10 overs.
The Black Caps enjoyed an early breakthrough when new-ball bowler James Franklin struck in what was a repeat of the April 12 Super Eights match in Grenada, which Sri Lanka won by six wickets.
The left-armer bowled the dangerous Jayasuriya when the 1996 World Cup winner aimed legside at a straight ball leaving Sri Lanka 13 for one.
Tharanga's flashing square cut over backward point off Franklin brought up the fifty in 65 balls.
But Franklin ended a partnership worth 54 when Kumar Sangakkara's checked drive lobbed gently to New Zealand captain Stephen Fleming at mid-on.
Franklin, who looked to be limping towards the end of his spell and who has suffered with migraine problems in the past, led New Zealand's attack with two for 46 in nine overs.
Left-hander Tharanga, whose place had been questioned after he'd scored 219 runs at a modest average of 24.33 in nine previous innings this tournament, completed a 51-ball fifty with eight fours.
And the 22-year-old subsequently struck left-arm spinner Daniel Vettori over extra-cover for six.
At the 25-over halfway stage of their innings, Sri Lanka were well placed for a big total at 111 for three.
But next ball they lost Tharanga, bowled around his legs, sweeping, by Vettori for a 73 made off 74 balls with one six and nine fours.
Jayawardene and Chamara Silva then accumulated steadily.
However, on 21, Silva was unluckily lbw to Bond, South Africa's Rudi Koertzen raising his finger despite the batsman's inside edge.
Jayawardene's 76-ball fifty including three fours saw the skipper make sure he was in for the final push.
He then lofted off-spinner Jeetan Patel for four between long-on and mid-wicket before driving pace bowling all-rounder Jacob Oram, fit again after a heel injury, over his head for six.
Jayawardene saw a sweep off Patel dropped by Bond on the deep backward square leg boundary, the ball bouncing out of the fieldsman's hands before hitting the rope for a six.
He went to 97 with an audacious flicked four behind square off Oram before completing his hundred off 104 balls, with a superb late cut boundary against the same bowler.
And in Bond's last over, he pulled the quick for six to bring up a fifty stand in 26 balls with Arnold.
Champions Australia play South Africa in Wednesday's second semi-final in St Lucia ahead of Saturday's final in Barbados.
Sri Lanka 289 for in 50 overs (Jayawardene 115 n o, Tharanga 73, Dilshan 30; Franklin 2 for 46, Vettori 1 for 51, Bond 1 for 59) Vs New Zealand (yet to bat).