At least eight Afghans were shot dead and dozens wounded Wednesday in clashes between police and demonstrators protesting over the burning of the Koran at a US-run military base, officials said.
In the capital Kabul and in provinces to the east, north and south of the capital, furious Afghans took to the streets screaming "Death to America", throwing rocks and setting fire to shops and vehicles as gunshots rang out.
In the eastern city Jalalabad, students set fire to an effigy of President Barack Obama, while the US embassy in Kabul declared it was on lockdown.
In Kabul, hundreds of people poured onto the Jalalabad road, throwing stones at US military base Camp Phoenix, where troops guarding the base fired into the air and black smoke from burning tyres rose, an AFP photographer said.
Afghanistan is a deeply religious country where slights against Islam have frequently provoked violent protests and Afghans were incensed that any Western troops could be so insensitive, 10 years after the 2001 US-led invasion.
The US commander in Afghanistan, General John Allen, apologised and ordered an investigation into the incident, admitting that religious materials, including Korans "were inadvertently taken to an incineration facility".
He also ordered that all troops would be trained in the "proper handling of religious materials no later than March 3".
US Defense Secretary Leon Panetta also apologised, saying that he and Allen "disapprove of such conduct in the strongest possible terms" and promising to "take all steps necessary and appropriate so that this never happens again".
The United States leads and dominates the 130,000-strong foreign military fighting a 10-year Taliban insurgency in Afghanistan.
Three protesters were killed in Shinwar district of Parwan province north of Kabul, provincial administration spokeswoman Roshna Khalid told AFP.
"The protests got violent. They attacked police with rocks and in a clash between police and protesters three people were killed and over 10 others are injured," Khalid said.
Kabul demonstrators attacked anti-riot police, forcing them to retreat and shots were fired as they tried to march on the centre of the capital, killing one person and wounding at least 11, according to a health ministry official.
Police spokesman Ashmat Estanakzai denied police opened fire, but said the demonstration "got violent after they attacked Camp Phoenix" and blocked the key highway leading east towards the Pakistani border.
The demonstrators were driven back and the protest was over by mid-afternoon, witnesses said.
A second protest erupted in west Kabul, involving about 100 university students and a third was held by dozens more at parliament until they were driven away by riot police.
In Jalalabad, there were also pockets of demonstrations across the city. Gunshots were heard but police did not confirm firing. Crowds threw rocks at cars and they set fires in the streets, an AFP reporter said.
Doctor Ahmad Ali said one person was killed and 10 others had been admitted to Jalalabad hospital with gunshot wounds.
"I saw the body myself. He is a young man from the protesters," Ali said.
More than 1,000 demonstrators, many of them university students, blocked the highway shouting "Death to Americans, Death to Obama", an AFP reporter said.
Elsewhere in the country, about 800 gathered in district centre Baraki Barak in Logar province, a flashpoint for Taliban violence south of Kabul, shouting anti-US slogans, said Sayed Wakil Agha, the district chief.
Reports that the Koran had been mistreated emerged on Tuesday, sparking demonstrations in Kabul and at Bagram airbase, but it remains unclear exactly who was responsible.
A spokesman for the US-led NATO force in Afghanistan, Lieutenant Colonel Jimmie Cummings, told AFP he could not confirm that the Korans had been burnt by Americans at the base, saying it was still under investigation.
Two US officials, who spoke on condition of anonymity, told AFP the military removed Korans from the US-run prison at Bagram because inmates were suspected of using the holy book to pass messages to each other.