Tens of thousands of people have taken to the streets in Brussels as part of a national strike over government reforms and spending cuts that has brought flights to a halt and severely disrupted public transport.

Belgium's three big unions are protesting over pensions and other measures by Prime Minister Bart de Wever's centre-right government aimed at cutting the budget deficit.

There were no services at Belgium's second biggest airport at Charleroi, and all departures and many of the arrivals were cancelled at Brussels Airport.

Although trains were running, most buses, trams and underground trains in the capital ground to a halt.

Shipping at Europe's second biggest port Antwerp was suspended until Wednesday because of understaffing, and more than 100 ships waited in the North Sea for permission to dock at three ports, according to Belgium's MDK maritime and coastal services.

By midday, police reported 80,000 protesters had joined the demonstration in the Belgian capital.

Public sector workers protested against austerity measures and a government increasingly perceived as leaning right. They wound through the streets of central Brussels, many wearing the red or green colours of the main unions.

A key issue for the unions is the government's plan to increase the number of days Belgians work per year before they can receive their pensions, as well as the end of special schemes for several sectors including military and railway workers.

De Wever's government has also announced measures including a maximum two-year limit on claiming unemployment benefits, and further cuts are planned for next year's budget, with some proposals such as reducing child benefits or raising VAT already floated.

Holding a placard showing the number 67 with a red line through it, one protester objected to the pension age going up: 65 is enough. 67 is too late. We are asked to work more, to work longer hours. It's not fair.

The protests were largely peaceful, although there were several incidents of vandalism and arson early in the morning and some individuals wearing masks clashed with police later on.