Hughes scored his second century in his fifth one-day international scoring the bulk of Australia’s 247 runs before hometown spinner Doherty ripped through the Sri Lankan top order.
It appeared Australia didn’t have enough runs to save the series but tight bowling stalled their run rate and virtually handed the home side victory.
All-rounder Angelo Mathews showed his wraps are unfounded smashing 67 from 79 balls but stagnant middle overs meant it was too late as they were bowled out for 215.
Doherty hadn’t taken a wicket in the series but struck in his second over – the 13th when Sri Lanka were cruising at 0-57 – taking the wicket of in-form out-goinging captain Mahela Jayawardene.
Then came a collapse of 4-20 from 51 balls, which left Doherty with 3-13 from his seven-over stint.
Moises Henriques, stepping in for all-rounder Shane Watson, took a career best 3-32.
Sri Lanka was tight in the field leaving the Australian’s to limp their way to a total that set a target of less than five an over.
Only Hughes had control, finishing with 138 not out from 154 balls despite having no notable partner to help him out.
He did however edge one ball onto his stumps without dislodging the bails, so he had luck.
Despite the win, Australia will be desperate to get its form and A-team back on deck – including injured skipper Michael Clarke – when they head to India and then next meet Sri Lanka and the six other best teams in the world at the ICC Champions Trophy in the UK.
Image via Getty