Het stadhuis (Grote Markt 23) werd in de eerste helft van de 14de eeuw gebouwd als een tweebeukig pand met aan de marktzijde een voorhal geflankeerd door een overwelfde kamer en aan de achterzijde een Vleeshal. Rechts tegen de voorhal verrees in de tweede helft van de 14de eeuw in baksteenwerk met natuurstenen speklagen de belfort-achtige toren, die als gevangenistoren dienst deed.
In 1463 kwam de huidige, grotere, Vleeshal tot stand met een kruisriboverwelving en een ingebouwde wenteltrap. Tevens werd toen de rest van het stadhuis gemoderniseerd, waarbij de Weeskamer (boven de 14de-eeuwse overwelfde kamer) ook kruisribgewelven kreeg.
Aan de linkerzijde bouwde men in 1587 een bodewoning aan.Het huidige aanzicht kreeg het stadhuis bij een ingrijpende verbouwing in 1771-75 onder leiding van stadsbouwmeester Boudewijn Kramer en met medewerking van steenhouwer Hendrik van Diest. Uit die tijd stamt de voorgevel in Lodewijk XV-stijl met op de begane grond vier rondboogtoegangen met geprofileerde hardstenen omlijsting en kuifbekroning en daarboven schuifvensters. De gevel wordt bekroond door een kroonlijst met consoles en een zandstenen balustrade met vaasvormige balusters; de gebeeldhouwde middenpartij toont een cartouchemotief met het stadswapen, geflankeerd door twee vrouwenfiguren die Justitia en Prudentia symboliseren. Bij deze verbouwing trok men de 16de-eeuwse bodewoning aan de linkerzijde op tot een toren met koepeldak en opengewerkte lantaarn. Het oude muurwerk met speklagen van de bodewoning bleef daarbij behouden. Verder werd de ingang in de toren aan de rechterzijde verplaatst en voorzien van een nieuwe bordestrap in Lodewijk XV-stijl.
Aanvankelijk werd boven het afsluitende rondboogfries een zandstenen balustrade aangebracht, maar deze heeft men verwijderd toen de toren in 1842 iets werd verhoogd en de 18de-eeuwse belvédère werd vernieuwd. Het achtzijdige neoclassicistische koepelpaviljoen met glazen rondboogdeuren tussen ionische pilasters heeft een opengewerkte houten lantaarn. Daarin hangen onder meer een door Simon Waghevens gegoten klok (1484), afkomstig uit de Grote Kerk, en een klok van Georgius du Mery (1746). De Vleeshal behield aan de Lange Kerkstraat de 15de-eeuwse gevel (met speklagen) en ingang. De gevel aan de Korte Kerkstraat heeft men in 1771 nieuw opgetrokken en voorzien van schuifvensters en een poortomlijsting. Inwendig werd in 1771-'75 op de verdieping een oost-westgang gerealiseerd met doorgangen naar de vertrekken aan de voorzijde en die boven de Vleeshal.
Sinds de algehele restauratie in 1967-'74, onder leiding van M.J.J. van Beveren, dient het stadhuis voor vergaderingen, trouwerijen en representatieve doeleinden.
In 1984 is daarbij een nieuw stadskantoor aan de Oostsingel in gebruik genomen. De Vleeshal is een restaurant geworden. Interessante interieuronderdelen in de rechtertoren zijn een geschilderd balkenplafond uit 1463, de ‘wakerskamer’ (eerste verdieping), het cachot (tweede verdieping) en de houten bordestrap van Hendrik van Diest (circa 1775) in het ingangsportaal. De oorspronkelijke Vierschaar later raadzaal op de verdieping van het hoofdgebouw heeft een stucplafond van Guiseppe Soldati en verder grisailles met gerechtssymbolen van Marten Jozef Geeraerts, een ijzeren hekwerk van Maxime Sumel en meubilair van Jacobus Walraven (alles circa 1775). Boven de doorgang vanuit de oost-westgang naar de raadzaal is een dessus-de-porte in stucwerk van Soldati aangebracht.