Czech police used tear gas and a water cannon to disperse hundreds of violent protesters who attacked them after a rally in Prague against government restrictions to slow the spread of coronavirus infections.

Police rescue services said at least 20 people were injured in the clashes on Sunday, which erupted after a couple of thousand people, including soccer and ice hockey fans, rallied at Old Town Square to condemn the restrictions that include a ban on sports competitions and the closure of bars and restaurants.

Public gatherings of more than six are also banned but up to 500 people are allowed to demonstrate if they are divided into separate groups of 20 and wear face masks.

Police confront demonstrators in Old Town Square in Prague
Police confront demonstrators in Old Town Square in Prague (Petr David Josek/AP)

Many of the demonstrators had no face coverings.

After police said their number surpassed 500, the organisers ended the rally.

But some protesters remained in the square, throwing flares, beer bottles, stones and various other objects at riot police.

The Czech Republic has been facing a record surge in coronavirus infections in recent weeks, making it one of the hardest hit countries in Europe.