The referendum on whether to amend the country's constitution to define marriage as a "union between a woman and a man" was called after some 700,000 people signed a petition launched by a conservative group seeking such a nation-wide vote.
The number of people who signed the petition was much higher than required by the law for calling a referendum.
A total of 104 MPs in the 151-seat assembly backed holding of the referendum compared with 13 who voted against. The others were absent or abstained.
Currently there is no definition of marriage in the constitution of the European Union's newest member state.
Croatia does not allow same-sex marriages, but many conservatives are worried it could become possible after the centre-left government said it was preparing a law that would enable gay and lesbian couples to register as "life partners".
Zeljko Reiner of the main conservative HDZ party stressed ahead of the parliamentary vote on Friday that "Croatia is a traditional society" and argued that such a consitutional clause was not discriminatory.
"It is simply the question of safety that something... which is a basis of the Croatian society does not change," he stressed in a reference to heterosexual families.
Gay rights activists have objected to putting the matter to a popular vote, saying it would be discriminatory. They are also asking the country's top court to review whether such a referendum would even be constitutional.
"This is undoubtedly a human rights issue and as such it cannot be put to a referendum," prominent gay rights activist Sanja Juras said.
The referendum would be the first citizen-initiated national vote in the country of 4.2 million people since it proclaimed independence from the former Yugoslavia in 1991.
Under Croatian law, a referendum does not require a majority voter turnout to be valid, meaning a small number of voters would be enough to push through an actual ban on gay marriages.
In 2003, Croatia extended to same-sex couples who have lived together for at least three years the same rights as those given to unmarried heterosexual couples, including state recognition of shared assets.
But gay rights are still a sensitive issue in a country where almost 90 percent of the population is Roman Catholic and where the Church has a strong influence.
Croatia held its first gay pride parade in the capital Zagreb in 2002, when more than a dozen participants were beaten up.
Since then parades have been staged annually without major incidents, though always under heavy security.
Neven Rauk, a 28-year-old unemployed cook, told AFP that "gays here are still afraid to come out".
"We do change laws, but the mindset of our society changes rather slowly," said Rauk, who has been a victim of homophobic violence.
He said a referendum "violates the right to be different, my right to equality which is guaranteed by the constitution".
"We should be all equal before the law. If my same-sex union cannot be called marriage then I'm not equal," he added.
The Catholic Church-backed group "In the Name of the Family" rebuffs accusations of homophobia, arguing that same-sex marriage is not a human right and accusing "aggressive" gay rights groups of trying to influence society.
A recent survey showed that 54 percent of Croatians support the group's initiative, compared to 30 percent against.
"We are a traditional country and the voice of the majority should be heard," said Marija Jankovic, a 40-year-old administrator.