A "small explosion" went off in the transportation hub around 8:30 p.m., Belgium Prosecutor's Office spokesman Eric Van Der Sypt said in a news conference Tuesday.
"The suspect was neutralized by soldiers," Van Der Sypt said. He later confirmed the suspect was dead but declined to identify him or say if he was known to authorities.
No civilians were injured in the attack, which set off panic as people ran for cover.
The Belgian Foreign Ministry said there is no indication of other incidents but the threat level remains at 3, which warns of a "possible and likely threat."
Belgian Prime Minister Charles Michel thanked security services and Belgian Rail for their courage and professionalism, which helped contain the situation within an hour. The National Security Council will meet Wednesday morning to address the incident.
The station was evacuated and closed along with two other stations in the Belgian capital. Armed patrols, including two bomb disposal units, surrounded the station.
A witness who was inside the station during the incident said he heard two explosions and then heard someone yell "Allahu Akbar" twice followed by heavy gunfire.
Sandor Moors said he was waiting on the train platform downstairs when he heard one bang followed by another and then the cries.
"There was a security announcement to leave the station. Military came down with heavy guns looking for someone."
After the gunfire he went upstairs looking for an escape. As he passed through what appeared to be gun smoke he said he saw a man with three bullet wounds.
"I don't know if he survived. He looked dead," Moors said.
Remy Bonnaffe said he was inside the station when an explosion went off, followed by a fire.
"The bang was very loud, it was like a very big firework that just went up in front of my nose," he said.
"The fire was very small. It was a very small explosion but a very loud bang."
Arash Aazami was walking into the train station when he saw people running out of the building. A restaurant next door let him and others inside as police secured the station.
"There's a lot of military here, but the situation seems to be contained," Aazami said. "There's no sign of panic."
The incident comes more than a year after suicide bombers in Brussels detonated several explosions in the Brussels Airport and a nearby Metro station. The attack killed 31 people and wounded hundreds.