After a two-and-a-half hour debate in closed session on Tuesday, parliament backed the deployment by 358 votes compared to 183 against.
Turkish peacekeepers will seek to relieve pressure on US forces in Iraq and bolster Ankara's ties with Washington.
The vote comes one day after the cabinet agreed to send troops to its southern neighbour.
Confidence paid off
Prime Minister Tayyip Erdogan, whose party holds a majority government, had always believed parliament would approve the motion, despite polls showing two thirds of Turks oppose the move.
Cemil Cicek told reporters the government anticipated a year-long deployment, but did not specify how many troops would be sent.
But Turkish officials have signalled in the past they could commit as many as 10,000 peacekeepers to Iraq. They are expected to be deployed in Arab-dominated central Iraq rather than in the mainly Kurdish north.
The Turkish parliament has defied
It is the second time that Turkey has debated its involvement with the war-battered country.
In March, parliament rejected a motion to allow US forces deploy from Turkish soil for an invasion of Iraq.
The United States has welcomed the move by the Turkish government.
"Turkey has an important role to play in stabilising Iraq,” State Department spokesman Richard Boucher said.
Turkey, in desperate need of economic aid, earlier negotiated loans of $8.5 billion from the US.
But that aid is believed to be contingent on Turkey’s cooperation with the US. However, Washington has denied the loans hinge on the sending of peacekeepers.
Financial markets concerned about the loans have been watching closely for the government to push through the motion.