The non-binding postal vote showed 61.6% of people favour allowing same-sex couples to wed, the Australian Bureau of Statistics said.
Jubilant supporters have been celebrating in public spaces, waving rainbow flags and singing and dancing.
The issue only went to a voluntary postal vote after a long and bitter debate about changing the law.
Prime Minister Malcolm Turnbull said his government would now aim to pass legislation in parliament by Christmas.
"[Australians] have spoken in their millions and they have voted overwhelmingly yes for marriage equality," Mr Turnbull said after the result was announced.
"They voted yes for fairness, yes for commitment, yes for love."
More than 12.7 million people - about 79.5% of eligible voters - took part in the eight-week poll, which asked one question: "Should the marriage law should be changed to allow same-sex couples to marry?"
The Yes campaign argued that it was a debate about equality. The No campaign put the focus on the definition of family, raising concerns about how issues like gender will be taught in schools.
Australia's chief statistician David Kalisch said about 7.8 million people voted in support of same-sex marriage, with approximately 4.9 million against it.
He said participation was higher than 70% in 146 of Australia's 150 electorates. All but 17 electorates supported changing the law.