Violence had erupted in the capital, Budapest, during the city's commemorations of the 50th anniversary of the anti-Soviet revolution.
Several hundred officers dispersed the last 300 rioters in the area shortly after 1.30am on Tuesday, while police also used snow plows to break through makeshift barricades set up at both ends of the Elizabeth Bridge over the Danube River, which divides the capital's Buda and Pest sections.
About 130 people were treated for injuries during the rioting, including 88 who were taken to hospitals, emergency officials said. Between 30 and 40 people were arrested in the violence.
At one point protesters hijacked a Soviet-era tank that was part of an exhibit on the uprising and drove it towards police lines until officers rushed to the vehicle and pulled out its driver.
Hungary's Fidesz-Hungarian Civic Union, the main centre-right opposition group, also held its own 1956 commemoration several hundred metres away, which local media said was attended by more than 100,000 people.
Monday's anti-government riots were the latest outburst of violence over the admission by Ferenc Gyurcsany, the Hungarian prime minister, that he lied about the economy to win April's election.
The trouble began when police expelled protesters from Kossuth Square, outside the Hungarian parliament, as part of security measures for the official commemorations.
Gyurcsany admitted to lying
over the April elections
Crowds have been staging demonstrations there since September 17, when the Socialist prime minister was heard admitting on a leaked recording that the government had lied about the economy before winning re-election in April and forming a coalition government.
The right-wing opposition Fidesz party, led by Viktor Orban, has called for a referendum on the package of economic reforms proposed by the government.
However the coalition government, comprising the Socialist party and the Free Democrat party, has backed Gyurcsany, with Gabor Kuncze, the Free Democray leader, accusing Orban of inflaming the protests.