Australia's Adam Gilchrist smashed a blistering 83 in his farewell appearance at the MCG but his teammates collapsed to hand Sri Lanka an unlikely 13-run win here on Friday.
The tourists, in their final match of the tri-series, made 221, and Australia looked well set when Gilchrist launched an extraordinary attack at the top of the order.
However, in a disappointing performance just two days away from their first tri-series final against India, the home side were dismissed for 208 from 48.1 overs to end a seven-match winning streak against the Sri Lankans.
Gilchrist smashed the Sri Lankan bowlers to all parts of the ground and Australia had already raced to 107 when opening partner James Hopes was controversially bowled for 28 by Muttiah Muralitharan (2-42) in the 15th over.
Although there was confusion over how Hopes was dismissed, it seemed a minor hiccup for his side.
However, the match turned when Gilchrist holed out to a fine catch by Lasith Malinga from the bowling of Nuwan Kulasekara (2-36) at long off for 83 just six runs later.
The veteran left-hander, set to retire at the end of this tournament, faced just 50 balls, belting 11 fours and two sixes and was on target to score Australia's fastest one-day international hundred.
Sri Lankan veteran Sanath Jayasuriya, who claimed the last Australian wicket, said the dismissal of the Australian wicketkeeper-batsman was the turning point.
"Gilly batted really well, that was the crucial wicket for us," he said.
"After that, I thought the bowlers bowled really well."
Gilchrist was named man of the match, but took little delight from the award after the loss, blaming himself for the defeat.
"I feel a bit silly to be honest," he said. "I had that game by the throat, so I feel a bit silly. I got a bit carried away."
With Gilchrist gone, the match turned suddenly as Sri Lanka claimed four more wickets in quick succession, the home side losing 6-16 to slump to 123 for six.
Captain Ricky Ponting was trapped LBW by Kulasekara for one, while Michael Clarke and the struggling Andrew Symonds both fell for ducks, all three batsmen falling with the score on 115.
When Brad Haddin, playing as a batsman with opener Matthew Hayden rested, was trapped LBW by a superb Malinga yorker for seven, Australia were in deep trouble.
Mike Hussey and Brad Hogg steadied the ship briefly, before Chamara Kapugedera curved one through Hussey's defences to remove him for five, leaving Australia 142 for seven.
Brett Lee tried to revive the chase, but any hope of an Australian fightback seemed over when Sri Lankan captain Mahela Jayawardene claimed a superb diving catch to remove Mitchell Johnson and give Ishara Amerasinghe (3-44) his third wicket.
Number 11 Nathan Bracken joined Lee and the pair cut the target from 49 to just 14 before Jayawardene sprung a surprise by bringing Jayasuriya on for the 49th over.
With his first ball he clean bowled Lee for 37 to hand Sri Lanka the win.
Earlier, half-centuries from Jayawardene and Tillakaratne Dilshan steered Sri Lanka to 221 after winning the toss.
Jayawardene cracked 50 off 66 balls and Dilshan 62 from 70 balls after they had slumped to 42 for three with the loss of star batsman Kumar Sangakkara for 11.
Left-arm paceman Nathan Bracken finished with 4-29 off 10 overs and Brett Lee claimed two wickets.