Australia's government has all but destroyed legislation that would allow gay marriage by refusing to allow its MPs a free vote on the divisive issue.

Members of the ruling conservative coalition voted 66 to 33 at the end of a six-hour heated debate to compel members of the government to follow the party line that marriage should be lawful only between a man and a woman.

MP Warren Entsch plans to introduce a bill to parliament on Monday that will allow same-sex marriage throughout Australia, but he and other campaigners concede that bill will now fail because government MPs will not be free to follow their consciences.

The outcome is a victory for prime minister Tony Abbott, a former Catholic seminarian who has been described as Australia's most socially conservative prime minister in decades.