About 300,000 people marched through Manhattan on Saturday and stretched for about 10 blocks as they headed down Broadway.
The event was organised by the group United for Peace and Justice.
"End this war, bring the troops home," read one of the many signs lifted by marchers three years after the war in Iraq began.
Organisers aid the march was to call for the return of troops from Iraq and to express opposition to any military action against Iran.
"We've been lied to, and they're going to lie to us again to bring us a war in Iran"
Marjori Ramos, protester
One marcher, Marjori Ramos, 43, of Staten Island, said: "We've been lied to, and they're going to lie to us again to bring us a war in Iran.
"I'm here because I had a lot of anger, and I had to do something."
The mother of a marine killed two years ago in Iraq held a picture of her son, born in 1984 and killed 20 years later.
Cindy Sheehan, a vociferous critic of the war whose 24-year-old soldier son also died in Iraq, joined the march, as did actress Susan Sarandon and the Reverend Jesse Jackson.
The march took place just hours after an American soldier was killed by a roadside bomb in Baghdad, the 70th US fighter killed in Iraq this month.
The death toll for April was the highest for a single month in 2006 even before Saturday's fatality.
Reverend Jesse Jackson (2nd L)
and Cindy Sheehan (R) at the rally
Although 70 is well below some of the bloodiest months of the Iraq conflict, it marks a sharp increase over March, when 31 American service members were killed.
January's death toll stood at 62 and February's at 55. In December 2005, 68 Americans died.
At least 2,399 members of the US military have died since the war began.