At least seven people were arrested during the rally, which took place outside the 88-storey Petronas Twin Towers in the capital.
About 300 protesters, led by the country's largest labour centre, the Malaysian Trade Union Congress (MTUC), chanted anti-government slogans and called for lower fuel prices.
Riot police, some on horseback, used water cannon when protesters ignored orders to disperse.
G Rajasekaran, the MTUC secretary-general, said: "It was a peaceful protest. Nobody created unrest, we do not see the reason for the arrests. Our government is very intolerant of peaceful protests."

The government raised pump prices of petrol and diesel by about a fifth last month , as part of a long-term plan to cut $1.2 billion in fuel subsidies.
Since October 2004, the regulated pump price of petrol has risen by 40% and that of diesel has doubled.
Opposition parties staged several protests after the latest fuel price increase, the first significant anti-government protest since the late 1990s when financial and political difficulties provoked large demonstrations.