"In many places, the gains we've made are still fragile and reversible," Obama said. "But there is no question we are clearing more areas from Taliban control and more Afghans are reclaiming their communities."
The president's report comes one year after he announced a new strategy for Afghanistan that included a rapid escalation of troops to be followed by a drawdown of forces beginning in July 2011.
But to guarantee the "fragile" security progress in Afghanistan takes hold, Obama said, "there is an urgent need for political and economic progress in Afghanistan."
While sticking by his original 2011 deadline to begin pulling out troops, Obama said the transition to full Afghan control will take three more years after that.
"None of these challenges that I've outlined will be easy," Obama said, in tones that echoed his predecessor, former President George W. Bush. "There are more difficult days ahead."
The president delivered his report after making a surprise, three-hour trip to Afghanistan and just as warnings are again being sounded about a possible al Qaeda attack in the United States over the holidays.
"I think it is encouraging that the administration is walking back from the July 2011 deadline ... and putting more emphasis on 2014 for turning over security," said James Phillips, an expert on the region at the Heritage Foundation. "But even that is a very ambitious goal."
Despite the mixed report of progress in Afghanistan, criticism of the president was muted, in part, because congressional Republicans who have derided virtually every other initiative Obama has undertaken are supportive of the war effort and have delivered for the president on funding requests that keep the military operations going.
And while many of the political left in Congress have berated the president over the war, many of them, most notably Sen. Russ Feingold of Wisconsin, lost their seats in the Nov. 2 elections.
House Speaker-elect John Boehner, R-Ohio, a prominent critic of Obama on most other issues, is among those who have allied themselves with the president on Afghanistan.
"The cost of war has been high for our nation, but succeeding in Afghanistan is critically important to the safety and security of our country," Boehner said Thursday.
The federal government has so far spent an estimated $336 billion on the Afghan war, and a total of $1.1 trillion on Afghanistan and Iraq.
Meanwhile, public support for the Afghan conflict is at an all-time low, with 60 percent saying the war is not worth fighting, according to a new ABC News/Washington Post poll.
Ronald Neumann, the Bush administration's ambassador to Afghanistan, said Obama could do more to sell his vision of where the conflict is heading.
"I think the president has a choice about whether he is going to use to the bully pulpit to explain and support this war," Neumann said. "So far, he has chosen to delegate that largely to his Cabinet."
As Obama spoke at the White House, anti-war protesters were arrested outside trying to chain themselves to the fence.
"How is the war economy working for you?" said a sign held by a demonstrator in the snow.