Promoted to the captaincy with regular skipper George Bailey suspended for a second slow over rate breach in 12 months, Smith's unbeaten 102 enabled Australia to chase down England's imposing total of 303 for eight.
Australia, also missing the rested David Warner and Shane Watson, made 304 for seven to win with just one ball to spare and remain undefeated in the competition, guaranteeing themselves a berth in Sunday's final.
Ian Bell's brilliant 141 set up the England total, which appeared to be enough for much of the game.
England was still in pole position when Brad Haddin strode to the wicket for Australia with the home side at 216 for five.
Another 88 runs were needed from 76 balls, but Haddin's 42 off 29 balls as part of a quickfire 71-run stand turned the game.
Smith, who hit four centuries in Australia's four-Test series against India that finished earlier in the month, faced 95 balls, hitting six fours and one six.
He paid tribute to the efforts of Haddin and conceded his own confidence was sky high.
"It's nice to get a few runs again tonight and get the boys over the line," said Smith.
"I'll never forget this summer.
"I've really enjoyed it, I've just got to try and keep going and score runs while I'm going well.
"I thought Haddin really took the pressure off me in the end today."
England captain Eoin Morgan said his team didn't make enough in the latter stages of their innings.
"We played good cricket in stages," he said.
"Ian Bell was magnificent but the last 10 overs let us down a little bit.
"Credit to Australia for how they bowled at the death."
When the two sides previously met earlier in the tournament, England was beaten by four wickets with more than 10 overs remaining.
However, England bounced back with an impressive nine-wicket win over India in Brisbane on Tuesday and carried that form into Friday's innings.
After being sent in to bat, England got off to a great start through Bell and fellow opener Moeen Ali.
Bell, who was unbeaten on 88 against India, made his fourth one-day international century before being caught by Starc from the bowling of rookie paceman Gurinder Sandhu, who finished with figures of 2-49.
He faced 125 balls, hitting 15 fours and one six, and passed two significant milestones during the innings.
Bell started the innings just five runs shy of becoming only the second Englishman to pass 5,000 one-day international runs.
In his 153rd one-day international, he passed that mark in the third over, and later went on to overtake Paul Collingwood as England's highest-ever runs scorer in the format as he neared his century.
His opening partnership of 113 with Ali, who scored 46, set up the English innings.
It ended in bizarre fashion, however, with Australia completing a team hat-trick in the last three balls.
Two batsmen, Chris Woakes and Jos Buttler, were run out while Ravi Bopara was bowled by Mitchell Starc.
Like Sports on Facebook, follow @ETribuneSports on Twitter to stay informed and join in the conversation.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ