The United Nations resolution calls for talks aimed at agreeing a treaty to police the world's $55-billion (37-billion-euro) arms trade.
The UN General Assembly's first committee on disarmament and peace passed the resolution calling for a treaty by 153 votes to one, with 19 abstentions.
The United States, Britain and France, which along with Germany are major arms suppliers, also supported the move.
The negotiations should address the "problems relating to the unregulated trade in conventional weapons and their diversion to the illicit market, considering that such risks can fuel instability, transnational organized crime and terrorism, and that international action should be taken to address the problem," the resolution said.
Zimbabwe stood alone in its opposition to a treaty on arms regulation, while the 19 countries abstaining included Russia, China, India and Pakistan. The treaty would aim to impose stricter export controls on weapons sales to nations that now lack them.
Formal talks on the treaty are to begin next year, with the US reversing a Bush-era policy that said national controls would be more effective than a global arms regulatory system.
US President Barack Obama decided to back the treaty providing that the final round of talks, set for 2012, were run on the basis of consensus, granting countries veto powers.
Germany, among other states, was angered by that demand, arguing it would lead to a watered-down treaty.
Diplomats said Britain had persuaded Berlin that US involvement would strengthen the legitimacy of any treaty, as Washington controls around two-thirds of the global arms trade.
Editor: Kyle James