The 2,500 Canadian troops deployed in south Afghanistan are due to leave within four years under a proposal likely to be passed by parliament.
Nato and Afghanistan want Canadian troops to stay on
Prime Minister Stephen Harper, who leads a minority Conservative government, unveiled the plan under pressure from the Liberal opposition.
The Liberals were pushing for an even earlier withdrawal and for Canada's troops to play a non-combat role.
At least 78 Canadians have been killed in Afghanistan since 2002.
The new schedule sees all soldiers leaving the violent Kandahar region by the end of 2011.
"It seems clear that we have moved significantly toward the kind of bipartisan consensus that can be presented to parliament for ratification," Mr Harper said.
Liberal leader Stephane Dion said the plan, which will go to a parliamentary vote in the next few weeks, met 95% of his party's demands.
"We welcome the new motion, which is based on the Liberal motion," he added.
Mr Harper has always supported extending Canada's military mission in Afghanistan and resisted opposition pressure to end it in 2009, when the mission's current deadline expires.
However, Canada's likely withdrawal may put further pressure on Nato's under-strength forces in Afghanistan, analysts believe.