While the motives of the attacker, a 30-year-old man, remain unclear, police have ruled out a terrorist attack, the prosecutor's office said, confirming the arrest.

A source close to the investigation told Reuters the attacker was previously known by the police.

"Cooperation with the various federal police services and (the local police) ensured that the perpetrator could be arrested quickly", Brussels' mayor Philippe Close said on Twitter.

The attack happened at 5.45pm local time in a subway car as it arrived at Schuman station, a stop known to be busy at rush hour.

One of the wounded is in a critical condition and all three are being treated in hospital.

(Reporting by Charlotte Van Campenhout, editing by Marine Strauss and Philippa Fletcher)