Tens of thousands of Malaysians, most from the majority Malay community, have marched through the capital in a show of support for the scandal-plagued government, stoking fear of ethnic tension in the diverse south-east Asian country.

Riot police used water cannons to disperse thousands of red-shirted protesters trying to break through barricades at Kuala Lumpur's Chinatown neighbourhood, shouting slogans denouncing ethnic Chinese community and opposition party leaders.

In an impressive show of strength, police said up to 30,000 marchers thronged the city centre, holding banners and shouting slogans in support of Prime Minister Najib Razak, who is battling allegations of graft and mismanagement at an indebted state fund.

Mr Najib did not officially endorse the march but elements within his ruling United Malays National Organisation (UNMO) encouraged organisers to stage the "Malay pride" rally in response to a big anti-government protest last month that called for Mr Najib's resignation over the corruption scandal.

Many opposition supporters come from the ethnic Chinese minority. Relations between the two communities are delicate and the march took place near the site of bloody race riots in 1969.

The demonstration brought business to a standstill in central Kuala Lumpur, with shops and businesses, especially in Chinese-dominated neighbourhoods, shuttered, and several roads closed to traffic.

March organisers said last month's anti-government protests, led by a pro-democracy group called Bersih, had insulted the country's Malay leaders.

"Long live Malays," said one banner, while another said "Don't look down and insult the Malays."

The opposition Bersih rally attracted many urban, ethnic Chinese people who wore yellow shirts. The red-shirted protesters included many young Malay men from rural areas, bussed into the city.