Organised by civil society groups, the so-called "march against terror and hatred" was aimed at putting on a show of unity after the bloodshed.
But turnout was less than half of the 15,000 people they had hoped for.
Around 6,000 people set off from the Gare du Nord railway station and joined up in the city centre with around 1,000 marchers who had started from Molenbeek, the rundown district that has gained an unwelcome reputation as a jihadi haven.
"When our fellow citizens, defenceless civilians, are cut down in a cowardly attack, all citizens should stand up to express their disgust and solidarity," said Hassan Bousetta, a local councillor from the city of Liege, who helped organise the march.
More From This Section
"It is a moment of reflection, a message of compassion for the victims and a moment when citizens come together," he told AFP.
Carrying a banner in French and Flemish reading "#alltogether against hatred and terror," the main group of marchers was led by families of the victims, followed by representatives from various religious communities.
In the group that set off from Molenbeek, children chanted, "Daesh, off you go, Brussels isn't for you!" using an acronym for the Islamic State jihadist group, which claimed the attacks.
Thirty-two people were killed in the March 22 bomb attacks, which targeted Zaventem airport and a subway train at Maalbeek station, near the European Union (EU) institutions in central Brussels.
At the ceremony, the names of the dead were read out before relatives of the dead and witnesses took turns to speak.