Twenty-cap Test batsman Hughes, who hit 112 from 129 deliveries, became the first Australian to notch a hundred on debut in the one-day game as the home side posted 305 for five. George Bailey added 89 in a 79-ball stay and David Hussey blasted 60 not out from 34 deliveries.
Despite losing two early wickets, Sri Lanka were in the game at 111 for two after 25 overs with Tillakaratne Dilshan, who made 51, and Dinesh Chandimal, the team's top-scorer with 73, looking comfortable. However, a period of madness that saw Australia complete three run-outs - two of which were direct hits - in less than five overs effectively ended the contest.
Pacemen Clint McKay, a standout performer with figures of four for 33, and Mitchell Johnson mopped up the tail as Sri Lanka were eventually dismissed for 198 in front of 27,461 fans in Melbourne.
Australia lead 1-0 with four games remaining in the series.