Sri Lanka, the 1996 champions and runners-up to Australia in 2007, overcame a worrying wobble to beat New Zealand by five wickets in Colombo and will tackle either India or Pakistan in Saturday's final in Mumbai.
Having dismissed the Black Caps for just 217, Sri Lanka reached 220-5 with 13 balls to spare.
News that makes sense
Your trusted source for staying up-to-date with the world around you. Get free daily news updates and analysis, straight to your inbox.
Tillakaratne Dilshan (73) and skipper Kumar Sangakkara (54) put on 120 for the second wicket before Sri Lanka lost three quick wickets to slump from 160-1 to 169-4.
But a limping Angelo Mathews (14) and Thilan Samaraweera (23) eventually saw their team home.
Victory also prolonged Muttiah Muralitharan's international career by one more game after the veteran off-spinner, who'll retire after the tournament, had marked his last appearance in Sri Lanka with two wickets.
In keeping with his dramatic career, the 38-year-old record-setting bowler took a wicket off the last ball of his final over when he had top scorer Scott Styris (57) lbw to send the 38,000-crowd at the R. Premadasa stadium into wild celebrations.
"It was the last game for Murali in Sri Lanka and we really wanted to give him a good send-off," said Sangakkara.
New Zealand, playing in their sixth semi-final, lost their last seven wickets for just 56 runs.
"We set up a great start, but we lost too many wickets at the end," said captain Daniel Vettori who signed off as ODI captain on Tuesday.
"The top order really set it up but we missed out by not capitalising on that. I think that's where we lost the game."
Fireworks greeted the end of Muralitharan's final match in Sri Lanka after 19 years of mesmerising performances and plenty of controversy over his action.
"Playing your last match in your country is emotional. When I played my last Test and took eight wickets it was very emotional," said Muralitharan of his last Test against India in 2010 where he also took a wicket off his last ball.
One placard in the crowd said simply: "Murali, thank you for the memories".
Meanwhile, more than 2,000 police and commandos threw a security blanket around Mohali ahead of Wednesday's semi-final between India and Pakistan, the pair's first meeting on Indian soil since the 2008 Mumbai terror attacks.
Although relations are still tense, the match has become a diplomatic lever with Pakistan Prime Minister Yousuf Raza Gilani accepting an invitation from his Indian counterpart Manmohan Singh to attend the match.
"We are leaving nothing to chance. The security will be multi-layered," said Mohali's Senior Superintendent of Police G.P.S. Bhullar.
Around 100 commandos belonging to Punjab's Special Security Group, trained by Israeli counter-terrorism experts, will be on duty at the 30,000-capacity PCA stadium.
Pakistan skipper Shahid Afridi said he'd no problems with all the extra responsibility in the game.
"I think I am the cricketer first and then the diplomat. I am an ambassador for Pakistan," said Afridi, the tournament's top wicket taker with 21.
"I think it's a great sign for both countries and sports, especially cricket which always brings these two countries together."
His India counterpart Mahendra Singh Dhoni insisted his team would just concentrate on the job at hand.
"We are expected to play good cricket. The biggest, distinguished guests will be there to see the game, but they are here to enjoy cricket, so we have to be at our best," he said.
India, the 1983 champions, have defeated Pakistan, who took the title in 1992, in all of their four previous World Cup meetings.

