Phil Hughes returned to form with a century before Xavier Doherty and Moises Henriques took three wickets each to lead Australia to a series-levelling 32-run win over Sri Lanka in the final one-day cricket international on Wednesday.
Hughes struck 138 not out at Bellerive Oval but Sri Lanka were on course to overhaul Australia's 247-5 until Doherty exploited spin-friendly conditions to dismiss three of the tourists' top four batsmen.
Pressure from Doherty reduced Sri Lanka from 50-0 at the 10-over mark to 85-4 from 25 and the tourists never fully recovered, stumbling to 215 all out and a 2-2 draw in the five-match series.
Australia still have batting concerns despite Hughes's second ton of the series, with David Hussey's 34 the next highest score, but the team showed spirit in the absence of injured captain Michael Clarke.
Australia's recent woes, which included a disappointing 170 all out in Adelaide and a shambolic 74 all out in Brisbane, looked set to continue when the home side crawled to 62-2 from 20 overs.
Hughes, however, overcame a slow start to rediscover the fluency he showed earlier in the series with an unbeaten 154-ball innings, hitting out with particular flair after he reached his century.
"Give yourself time early and you can always catch up later," Hughes said. "It was one of those innings today.
"I had found it quite tough but luckily enough I got a few away at the end. We had wickets in hand and that was always in the back of our mind."
Signalling his team's preference to chase a target rather than set one, Sri Lanka captain Mahele Jayawardene opted to bowl first and handed the ball to Tillakaratne Dilshan for the first over.
Dilshan did not get to bowl in Sunday's fourth match in Sydney - where Sri Lanka were on top until rain forced an abandonment - but he turned the new ball immediately.
He beat David Warner's outside edge to bowl him for 10 and wicketkeeper Matthew Wade, pushed up the order to open, was trapped lbw by man-of-the-series Nuwan Kulasekara soon after.
Australia failed even to equal their dismal series average of 71-4 at 20 overs but made the most of the wickets in hand.
Hughes had a let-off on 20 when an inside edge from Angelo Mathews rolled on to the foot of stumps but failed to dislodge the bails. He gathered momentum from that point, adding 60 from 96 balls for the third wicket with captain George Bailey (17) and 98 from 102 with Hussey.
Hussey was run out by a direct hit from Thisara Perera after softly serving the ball back to the bowler but Glenn Maxwell and Henriques each scored at a run a ball to help Hughes keep the scoreboard ticking over.
Hughes now has two centuries from five one-day innings.
"It's nice to get a chance in one-day cricket," said man-of-the-match Hughes, who played 20 tests before making his 50-over bow. "It feels like it was a long time coming."
Sri Lanka were rolling nicely with Jayawardene driving and stroking the ball with ease but the opener, in his final match as captain, holed out to Mitchell Starc off Doherty for 38.
That started a rot from 57-0 to 77-4. Dilshan was caught behind off Henriques for a pedestrian 48-ball 19 and Doherty got rid of Lahiru Thirimanne for one before bowling the dangerous Dinesh Chandimal (6).
Mathews and Jeevan Mendis raised hopes of an unlikely win with 74 off 53 balls after Sri Lanka had hit a nadir of 113-5 from 35 overs but Henriques bowled Mendis for 26 and Mathews holed out off Mitchell Johnson for 67 in the next over.
The last five wickets fell for 28 runs as Sri Lanka were bowled out with nine balls remaining. Henriques finished with career-best figures of 3-32, while Doherty returned 3-21.
The teams now return to Sydney for Saturday's first Twenty20.