Den bymæssige bebyggelse voksede i 900-tallet frem nord for det område, hvor en gren af Bygholm Å mødte Horsens Fjord og skabte forudsætninger for en lille havn. De ældste kendte aktivitetsspor stammer fra tidligt i 900-tallet, hvor der synes at være blevet gravet en voldgrav. Denne tidlige befæstning er bedst kendt øst for klosterkirken, men kan have udgjort en del af et halvkredsforløb langs de nuværende gader Fugholm og Havneallé samt nord om Borgergade.
De ældste bebyggelsesspor stammer fra lidt senere i 900-tallet og kendes fra udgravninger i Borgergade. I Stjernholmkvarteret, øst for voldgraven, er der udgravet grubehuse, og i Søndergade vest for volden er der desuden udgravet en førkristen gravplads. Et langhus fra 1000-tallet lå på det nuværende Torvet.
Uden for volden mod øst i Stjernholmkvarteret blev den nu nedlagte Vor Frue Kirke eller Skt. Maria Kirke opført, formentlig i 1000-tallet; kirkens præcise opførelsestidpunkt og beliggenhed er dog ikke fastlagt. Kirken tjente som byens sognekirke med kirkegård indtil 1480.
I årene 1146‑57, hvor navnet Hors optræder første gang, blev der slået mønt i Horsens, hvilket tyder på, at bydannelsen igennem nogen tid havde været betydelig. Byens ældste gadenet kendes dog ikke, men Borgergade og muligvis også Badstuestræde må regnes som de ældste gader.
I 1200-tallet voksede byen mod vest. Hvor senere Torvet opstod, opførtes efter 1225 et kongeligt treskibet teglstenskapel med to tårne. Da kapellet, som kan have haft forgængere, omtaltes første gang i 1418, blev det kaldt Sankt Jakobs Kapel (også kaldet Skt. Ibs Kapel). Hvor byens ældste bebyggelse havde ligget, etableredes efter 1261 et franciskanerkloster.
1300-tallets bymæssige vækst skete ved udformningen af en helt ny byplan. Den gamle Borgergade blev forlænget mod vest med Torvet og Søndergade og mod nord med Kattesund og Nørregade. Hele byen blev endvidere omgivet af en ny, bred voldgrav. Mod øst fulgte den nye grav den gamle gravs forløb, og mod vest vidner gadenavnet Graven endnu om voldgravens placering. For enden af de fire hovedgader lå byens porte. I forbindelse med udlægningen af det nye gadenet blev de nye veje brolagt med et lag af småsten. Man mener derfor, at matrikuleringen fandt sted på samme tid i hele den nye bydel. Men da de tidligste spor af hegn med relation til selve matrikuleringen stammer fra 1420’erne, kan dette ikke belyses. Dele af matrikelstrukturen er endnu bevaret mellem Søndergade og Nørregade.
Horsens fik både stadsret (før 1317), rådhus og eget segl i 1300-tallet. I 1351 overdrog kongen sognekirken Vor Frue samt Sankt Jakobs Kapel til johanniterordenen i forbindelse med etableringen af ordenens kloster i Horsens.
I 1509 omtales et helligåndshus, der måske lå på Søndergade, hvor det gamle rådhus ligger i dag. Her er der udgravet begravelser, hvoraf flere dog er væsentlig ældre. Vest for byen ved Hospitalsgade lå i senmiddelalderen også byens Sankt Jørgensgård, hvor der også er fundet begravelser. Endnu en brand i 1540 ødelagde de fleste spor af middelalderens verdslige bebyggelse undtagen en række teglsatte kældre.
Reformationen medførte nedlæggelsen af byens to klostre, Vor Frue Kirke samt Helligåndshuset og Sankt Jørgensgård. Den forhenværende franciskanerklosterkirke blev nu sognekirke, og Sankt Jakobs Kapel blev annekskirke. Der blev anlagt en kirkegård omkring klosterkirken. Sankt Jørgensgård fortsatte som Horsens Hospital, og johanniterklosteret blev ombygget.
Byens befæstning blev fjernet, og byen voksede mod nord langs Smedegade samt mod vest ad Søndergade, hvor der blev udlagt et stort areal til bebyggelse. Rådhuset blev flyttet fra Torvet til Søndergade i 1585 og lå på samme grund i 400 år.
1600-tallets by var præget af mange krige. I 1631 blev byens første enkebolig (nu nedrevet) opført i gaden Fugholm. I første halvdel af 1700-tallet kom Horsens langsomt til kræfter, og blandt byens håndværkere skabte såvel sølvsmede, billedskærere som pottemagere fine arbejder.
I den nye, vestlige del af Søndergade blev der i 1736 opført et apotek i grundmur, ligesom den rige købmand Gerhard Hansen de Lichtenberg lod opføre Det Lichtenbergske Palæ her i 1744. I årene efter 1770 var bygmester Anders Kruuse og billedhugger Jens Hiernøe drivkræfterne bag den store forandring, som husene i Søndergade og Nørregade undergik.
Horsens var regimentsby i perioden 1739‑1842, nordisk hovedkvarter for Det hollandske kedelførerlav (fra 1764), eksil for fire russiske fyrstelige personer (1780‑1807) og hjemby for en større gruppe jøder. Prinsesse Charlotte Frederikke, den senere Christian 8.s første hustru, boede i perioden 1810-29 desuden i byen.
I 1794 blev det besluttet, at Sankt Jakobs Kapel skulle overtage klosterkirkens funktion som sognekirke. Nu fik førstnævnte navnet Vor Frelsers Kirke og blev ombygget i nyklassicistisk stil; kirkegården lå dog stadig ved klosterkirken. I 1786 åbnedes byens anden enkebolig, Flensborg Enkebolig, på Nørregade 31.
Benyttelse af åen som havn skabte konstant besvær, hvilket bl.a. skyldtes tilsanding og dårligt vedligeholdte bolværker. I 1785 blev der derfor nedsat en havnekommission for at forbedre forholdene.
Krig, statsbankerot og tabet af Norge mellem 1801 og 1814 skabte indtil ca. 1830 vanskelige økonomiske forhold for byen. På folketallet kan dog aflæses en tilvækst i indbyggertal: 1787: 2.221; 1801: 2.396 og 1834: 4.846 personer. Dette afspejles i væksten af bebyggelsen mod nord op ad Hestedamsgade og Smedegade samt i anlæggelse af en ny kirkegård på byens forhenværende markjorder i 1835.
Tobaksavlen på markjorderne resulterede bl.a. i oprettelsen af Mads Pagh Bønnelyckes tobaksfabrik i 1802. Weiss’ Jernstøberi, senere overtaget af Ulrich Stallknecht, stiftedes 1830‑31. Endelig skabte Johan Wilhelm Schur i 1846 en grafisk virksomhed, der, under Schur-koncernen, stadig har hjemsted i Horsens. Fra 1828 udkom byens første avis, Horsens Avis.
Fra anden halvdel af 1800-tallet voksede Horsens kraftigt i både bebygget areal og befolkningsmæssigt, idet indbyggertallet voksede fra 7.250 i 1855 til 22.243 i 1901.
I den nordvestlige bydel i området omkring Horsens Tugthus, åbnet i 1853, voksede Vestergadekvarteret op med boliger til en del af byens mange arbejdere. Kvarteret havde tæt forbindelse også til de virksomheder, der blev opført omkring banegården, efter at den åbnede i 1868, da Horsens fik station på Den Østjyske Længdebane. Lidt senere blev der opført arbejder- og funktionærboliger samt villaer i kvartererne øst for bymidten. Andre tegn på befolkningsvækst var opdelingen af byens hidtidige ene sogn i to i 1904. De væsentligste forandringer i den indre by blev lukningen af åen, der blev påbegyndt i 1903, samt etableringen af Åboulevarden. Den nye boulevard var beregnet til bilkørsel, og opfyldningen af åen gjorde det samtidig muligt at lede kloakeringen under jorden.
Til den moderne købstad hørte forsyningsværker (gas-, el- og vandværker), stiftelser til gamle eller nedslidte arbejdere og håndværkere, flere skoler, den nye Østre Kirkegård, sygehuse (1858 og 1908) og museum. Alt sammen blev båret frem af en lang række af nye industrivirksomheder, fx A/S Hede Nielsens Fabriker, Emil Møllers Telefonfabrik og Danmarks første andelssvineslagteri (1887), hvor de mange tilflyttere fra oplandet fandt arbejde. Læselystne horsensianere fik i 1894 en »Folkebogsamling«, der blev begyndelsen på de danske folkebiblioteker, udviklet af Andr. Sch. Steenberg.
Med købet af Bygholm Gods i 1918 erhvervede Horsens store arealer lige vest for byen. I 1929 indviedes en ny banegård her, hvor den tidligere lå ved Vitus Berings Plads, ligesom flere store boligbyggerier blev opført i området både før og efter 2. Verdenskrig. Grønne åndehuller blev skabt med Bygholm Park (1937) og Vitus Bering Parken (1957), hvor også biblioteket fik plads fra 1960.
Den økonomiske krise i 1930’erne og krigsårene i 1940’erne forårsagede arbejdsløshed og social nød. Under 2. Verdenskrig groede en aktiv opposition mod besættelsesmagten frem og medførte talrige sabotager fra horsensiansk side og ødelæggelser fra tysk side.
I 1933 blev havnen udvidet med en ny fiskeri- og lystbådehavn, og i perioden 1918‑50 blev 335 m ny kaj bygget. Jernbanedriften mindskedes til gengæld, idet alle privatbaner med knudepunkt i Horsens blev nedlagt mellem 1957 og 1968 og erstattet af lastbiler og busser. Tilvæksten i lejlighedsbyggeriet skete i 1950’erne og 1960’erne mest i den østlige og den sydlige del af byen og forårsagede, at Sønderbro Kirke, indviet i 1971, blev byens tredje sognekirke. Indbyggertallet var fra 27.588 i 1921 nået op på 37.587 i 1950 for i 1970 at nå 44.120 indbyggere.
Efter 1970 var væksten i indbyggertallet langsommere. Mange af byens store virksomheder lukkede eller mistede deres lokale forankring. Dog blev der i 1980’erne skabt en række nye arbejdspladser i elektronik-, levnedsmiddel- og grafiske brancher, og langsomt kom byen på fode igen. Åbningen af et nyt rådhus i 1986 symboliserede dette. I 1984 flyttede Horsens Kunstmuseum ind i Pavillon Lunden, og i 1988 blev biblioteket flyttet til større lokaler i en tidligere tobaksfabrik. Først i 2006 nåede Horsens op på 50.983 indbyggere, hvilket blev hjulpet godt af en række initiativer, der tiltrak omverdenens opmærksomhed, nemlig den årlige afholdelse af Europæisk Middelalder Festival (afholdt siden 1995, nu Horsens Middelalderfestival) og hyppige store koncerter med internationale kunstnere. I 2006 lukkede fængslet, og bygningerne blev senere udnyttet til fængselsmuseum og koncert- og kulturoplevelser m.m.