According to the German Die Welt newspaper, 372 parliamentarians voted for supporting the Global Compact, with 153 against and 141 abstentions.
Earlier in the day, Germany's Foreign Minister Heiko Maas told journalists that becoming party to the pact would help to noticeably reduce the migration pressure on Germany in the long run.
The non-binding pact, which seeks to cover all dimensions of international migration, was approved on July 13 by all UN member states except the United States. The paper represents the international community's attempt to establish a common global approach to all aspects of international migration.
However, the document has recently been losing support over concerns it will affect national migration policies, with a number of countries already abandoning their plans to sign the agreement.
Among the countries that refused to sign the Compact are Austria, the Czech Republic, Bulgaria, Hungary, Poland and Slovakia. Italy said it would not attend the UN conference in Morocco on December 10-11 but may sign up to the final deal.
The pact urges countries to take voluntary measures to help improve the conditions in migrants' countries of origin that are frequently cited as the primary motivators of emigration, as well as to help destination countries better assimilate migrants and provide them with sustainable conditions.
The Global Compact for Safe, Orderly and Regular Migration is expected to be formally adopted at an intergovernmental conference in the Moroccan city of Marrakesh on December 10-11.