The protesters carried roses to symbolise peaceful demands
More than 20 people taking part in the banned march were detained by police.
The demonstration was organised by the Hindu Rights Action Force, which is demanding the release from jail of five of its leaders.
Activists say policies granting economic advantages to the ethnic Malay majority discriminate against Indians.
The Malaysia government has rejected claims of unequal treatment.
Detention without trial
Some 2000 protesters defied a ban on public gatherings, and carried roses to symbolise what they said was a peaceful demand for justice.
A heavy police presence kept them in the city centre - preventing their planned march to parliament to give the flowers to the Prime Minister, Abdullah Badawi.
The protest was meant to be led by a group of about 200 children. There were no reports of any children being injured.
Police used water canons thought to be laced with chemicals and tear gas to disperse the crowd.
The group behind the demonstration has become increasingly effective at rattling the government, says the BBC's Robin Brant in Kuala Lumpur.
It was behind a large demonstration on the streets of the capital last November which saw 10,000 people gather.
That rally exposed increasing unhappiness among some of Malaysia's minority Indians who feel they have fallen behind after decades of government policy which gives preferential treatment to the majority Malays, our correspondent says.
Five rights activists were arrested at that rally - the biggest protest involving ethnic Indians in more than a decade.
They are being held under a rarely used security law that allows indefinite detention without trial.