The incident happened at one of the country's busiest train stations
Belgian soldiers patrolling a major train station in Brussels have shot dead a suspected suicide bomber following an explosion.
Belgium's federal prosecutor confirmed the "terrorist attack" at Brussels Central, one of the country's busiest stations.
Authorities have identified the suspect as a 36-year-old Moroccan, but have not released his name.
He lived in Molenbeek, the district which was home to some of the people suspected of carrying out the terror attacks in Paris and Brussels in 2015 and 2016.
Police have been searching his home in the Brussels neighbourhood. Prosecutors said he had no history of being a terror suspect.
The suspect was carrying two explosive devices in a bag - one of which he triggered - which also contained gas canisters and nails.
It was not a full detonation, but it was strong enough to ignite him - and a passer-by managed to photograph the suspect on fire.
He ran at a soldier after the explosion shouting "Allahu akbar" - God is greatest - in Arabic, before he was shot by troops.
The suspect lay still for several hours while a bomb squad made safe the second device and checked whether he had other explosives, and later died.
No civilians were injured or killed in the blast.
The suspect was initially reported to have been wearing an explosive belt and had wires coming out of his clothes, according to some media.
A spokesman for Belgium's railway operator said a crowd in the station panicked and "ran for the tracks" following the incident.
Brussels Central was evacuated and searched, with rail services from the station suspended. Grand Place, a major tourist site which lies about 200m away, was also evacuated.
Train services at two other stations in the capital, Brussels North and Brussels South, were also disrupted.
The country has been on high alert since suicide bombers killed 32 people on the city subway and at Brussels Airport in March last year.
Soldiers have been stationed at railway stations, government buildings and EU institutions since.
The country's Crisis Centre, which monitors security threats, kept the threat level at the second highest level.
Belgium's Prime Minister, Charles Michel, said the attack "could have been potentially very dangerous".
His spokesman said he was "following the situation very closely from the crisis centre".
People in the area were pushed away from the scene, and police on Twitter urged the public to follow instructions given by the authorities.