The government's proposals were approved by an overwhelming majority, with 442 parliamentarians voting in favour, 96 voted against and 32 abstentions. The ruling conservative CDU/CSU and the Social Democrat SPD parties both voted in favour, as did the liberal FDP. But a number of members of the environmentalist Green party either abstained or voted against the motion.
The socialist Left party is fundamentally opposed to the deployment of German troops in Afghanistan.
Earlier, Defence Minister Franz Josef Jung had defended cabinet proposals to extend the mandate by 14 months until December 2009 and boost troop levels to 4,500.
In an interview on ARD German public television, Jung said that "with the situation in, say, (the northern Afghan province of) Kunduz becoming more critical... an increased number of Germam soldiers is necessary in the interests of our soldiers' safety."
The reinforcements, demanded by NATO, would also help with the training of Afghan soldiers "so that Afghanistan will itself be capable of assuring its own security," Jung said.
Polls indicate the deployment is highly unpopular in Germany, in part because of its indefinite nature, with a lack of clear goals that would justify a withdrawal at any given point in time.
Jung reiterated that the mandate for elite German troops deployed since 2001 for US-led operations against Taliban militants was to be terminated. Such operations are highly controversial in Germany because of the heavy civilian casualties. The elite German troops will however continue to hunt militants with an international force in the Horn of Africa.
In Afghanistan, German troops are deployed largely in the north of the country, which is comparatively calm, and Berlin is opposed to their involvement in fighting in the south of the country.