Police and anti-government protesters have clashed in Budapest
commemorated the 50th anniversary of the country's 1956 uprising against Soviet rule.
Police fired rubber bullets and tear gas at the protesters as they gathered in the capital on Monday. Protesters also briefly seized a tank before the police intervened.
A rescue official said that at least 27 people had been injured.
At one point, 150 police officers slowly advanced on the crowd of about 200, some of whom threw bottles and rocks at the police, who fired tear gas to disperse them.
One man drove an unarmed tank that had been part of a nearby exhibit about the revolution among the protesters. Police rushed to the tank and pulled out at least one person.
The anniversary of the uprising has coincided with a month of protests against Ferenc Gyurcsany, Hungary's prime minister, after he admitted lying about the economy to win elections in April.
By late afternoon, protesters began gathering in different spots near the city centre. They used rubbish bins as road blocks near St Stephen's Basilica and threw rocks at police dressed in riot gear. The police used tear gas and water cannons to disperse them.
Laszlo Solyom, the Hungarian presideent, cancelled his scheduled appearance at the unveiling of a 1956 memorial near Heroes' Square, close to where an 18-metre-high statue of Stalin was toppled by revolutionaries a half-century ago.
Protesters are unhappy with
Gyurcsany's hold on power
Inside parliament, Gyurcsany said that in 1956 Hungarians had no choice but to rebel, but said that Hungary was now a modern, democratic state.
"Despite the often justified disappointment and discontent, the majority of Hungarians believe that parliamentary democracy is the most suited to express people's will and to create law and give a programme to a free Hungary," Gyurcsany said.
About 2,600 Hungarians died battling Soviet troops, more than 200 were executed for their role in the uprising and 200,000 fled the country.
Hungary held its first post-communist elections in 1990 and joined the European Union in 2004.
The protesters' camp outside parliament was cleared before the official celebrations started, but by midday in Budapest 3,000 people were assembled at Corvin Square.
"I am here because we have to fight this government, we have to destroy them"
The protesters chanted "56, 56" and "traitor", a reference to Gyurcsany. Some of them vowed to return to parliament.
"I am here because we have to fight this government, we have to destroy them," Laszlo Toth, 76, said.
"Aged 19, I was arrested and taken to [secret police headquarters in] Andrassy Street. I confessed to everything so they would stop beating me. I am here for the younger generation."