An estimated 20,000 people took part in the demonstration, which was organised by a pro-Islamist party.
Protesters shouted anti-American slogans and burned a poster showing US President George Bush.
Allegations of abuse of prisoners by US and British troops have shocked opinion in Muslim Turkey which borders Iraq.
Watched by a large number of police the protesters shouted slogans such as "USA murders", "Western civilisation: occupation and rape", and "Down with Israel" before dispersing peacefully.
Political leaders have denounced the "inhumane" and "repugnant" behaviour of US troops.
Turkey, the only Muslim nation to belong to NATO, declined to let the US-led occupation use its territory before the 2003 war against ousted Iraqi president Saddam Hussein.