Sri Lanka produced a superb team effort in the field after recalled opener Sanath Jayasuriya had scored a century to beat Australia by 51 runs in their triangular one-day match in Sydney on Sunday.
Jayasuriya, who dislocated his shoulder after slipping in the shower while the team was in New Zealand earlier this month, arrived in Sydney on Friday and rushed back into the team to notch his 19th one-day century in Sri Lanka's 309 for seven.
The Sri Lankan bowlers then put pressure on the Australians from the outset, reducing them to 41 for three before bowling them out for 258 on the final ball of their 50 overs.
Super sub Malinga Bandara finished with four for 58, including grabbing two wickets in the final over.
Only wicketkeeper Brad Haddin (41), Michael Clarke (67) and Andrew Symonds (31), who had combined for 73 runs in 10.1 overs to look like they may steal the game for the world champions, produced any real resistance.
Clarke and Symonds initially played themselves in before they began to accelerate and put pressure on the Sri Lankan field with some aggressive running between the wickets.
Symonds, however, was run out after a brilliant stop in the field by Tillakaratne Dilshan in the 36th over and Clarke fell five balls later when he holed out in the deep off Bandara to leave Australia 188 for seven.
James Hopes (43) and Brad Hogg (22 not out) ensured Sri Lanka did not get a bonus point though the victory moved them to second on the tri-series table with nine points.
Australia have 10 points while South Africa have four.
Mahela Jayawardene (56) and captain Marvan Atapattu (31 not out) kept the score ticking over to ensure Sri Lanka passed 300 for only the second time against Australia.
Their highest score against the world champions was the 343 for five they made in a 79-run victory at the SCG in January 2003. Jayasuriya also scored a century in that match.
Sri Lanka play South Africa in the next match of the series in Adelaide on Tuesday.
Sri Lanka Innings
J. Mubarak c Haddin b Lee 2
S. Jayasuriya st Haddin b Hogg 114
K. Sangakkara c&b Symonds 78
M. Jayawardene b Bracken 56
M. Atapattu not out 31
T. Dilshan c&b Clarke 6
R. Arnold run out 6
C. Vaas c Hussey b Bracken 2
Extras (b-2 lb-8 nb-2 w-2) 14
Total (for 7 wickets, 50 overs) 309
Fall of wickets: 1-24 2-187 3-227 4-280 5-289 6-297 7-309
Did not bat: N. Kulasekara, R. Perera, M. Muralitharan
B. Lee 10 - 1 - 50 - 1 (nb-1)
N. Bracken 9 - 1 - 40 - 2 (w-1)
B. Dorey 4 - 0 - 35 - 0 (w-1)
J. Hopes 6 - 0 - 65 - 0 (nb-1)
A. Symonds 10 - 0 - 44 - 1
B. Hogg 6 - 0 - 31 - 1
M. Clarke 5 - 0 - 34 - 1
D. Martyn c Kulasekara b Vaas 8
S. Katich c Mubarak b Perera 19
R. Ponting c Muralitharan b Perera 13
M. Clarke c Muralitharan b Bandara 67
B. Haddin b Muralitharan 41
M. Hussey run out 0
A. Symonds run out 31
J. Hopes c Vaas b Bandara 43
B. Lee c Dilshan b Bandara 3
B. Hogg not out 22
N. Bracken c Atapattu b Bandara 0
Extras (lb-5 nb-1 w-5) 11
Total (all out, 50 overs) 258
Fall of wickets: 1-16 2-36 3-41 4-110 5-111 6-184 7-188 8-197 9-257 10-258
Did not bat: B. Dorey
C. Vaas 9 - 2 - 32 - 1
R. Perera 9 - 2 - 37 - 2 (w-2)
N. Kulasekara 4 - 0 - 22 - 0 (nb-1)
M. Muralitharan 10 - 0 - 54 - 1 (w-1)
M. Bandara 10 - 0 - 58 - 4
S. Jayasuriya 8 - 0 - 50 - 0 (w-2)
Sri Lanka won by 51 runs