"We believe that it is a terrorist attack," said a prosecutors' office spokeswoman, adding that the man had shouted "Allahu Akbar" (Arabic for "God is Great") twice during the attack.
Belgian media reported that the man, who was rushed to the hospital after the attack, had attacked two soldiers injuring one in the face and the other in the hand.
The attack took place around 8:00 pm (1800 GMT) on a street in central Brussels
Belgian Prime Minister Charles Michel tweeted: "All our support is with our soldiers. Our security services remain on alert. We are following the situation closely."
Police have sealed off a main street not far from the Belgian capital's main Grand Place tourist attraction.
Belgium has been on high alert since suicide bombers killed 32 people in attacks on March 22, 2016 on the Brussels main airport and subway system.
Even though there is no official statement whether or not the incident was a terror attack, Europe has experienced a number of them recently.
Experts said Daesh terrorist group, responsible for seven of the 10 deadliest attacks since 2012, is currently encouraging its followers to use knives and vehicles over firearms and explosives.