The man, who prosecutors said yelled 'Allahu akbar' (God is greatest) during the violence, was shot by soldiers on a street in the city centre.
"We believe that it is a terrorist attack," said a prosecutors' office spokeswoman, who added the attacker "is dead."
The incident comes after attacks claimed by ISIS in Spain last week killed 15 people and a knifeman's stabbing spree in Finland left two dead and eight wounded.
One of the two soldiers targeted was "slightly" wounded, according to federal prosecutors, who have opened a terror probe of that attack launched around 8:00 pm (1800 GMT).
The mayor of Brussels, Philippe Close, told reporters the incident was the work of a "lone individual".
Soldiers have been deployed at railway stations and landmark buildings since the Paris terror attacks in 2015, when a link to Brussels was first established.
The Belgian capital has been on high alert since suicide bombers struck Zavantem Airport and the Maalbeek metro station near the EU quarter in March 2016, killing 32 people and injuring hundreds more.
Belgian authorities heaved a sigh of relief in June when a man who tried to bomb a Brussels train station was shot dead by a soldier.
Belgian authorities identified the man in that incident as a 36-year-old Moroccan national with the initials O.Z., while local media named him as Oussama Zariouh.
No one was injured in the foiled attack at Brussels Central station but officials said the consequences could have been severe had the bomb, full of nails and gas canisters, detonated properly.
The man shouted "Allahu Akbar" (God is Greatest) during the attack and prosecutors said he had sympathies for ISIS.
Police found explosive materials in a raid on the home of the suspect in Molenbeek, a Brussels district which has been linked to recent deadly terror plots in France and Belgium.
Belgian soldiers and police have repeatedly been the target of attacks in recent months.
Get the latest election news, live updates and election schedule for Lok Sabha Elections 2019 on ndtv.com/elections. Like us on Facebook or follow us on Twitter and Instagram for updates from each of the 543 parliamentary seats for the 2019 Indian general elections.