We wczesnym średniowieczu istniał tu gród pruski Alyem, zdobyty w 1236 roku przez Krzyżaków, którzy na terenie dzisiejszego Rynku założyli folwark, a w latach 1326-1333 wybudowali zamek - siedzibę wójta zakonnego. W 1377 roku arcyksiążę austriacki Albrecht III Habsburg, wspierający Zakon podczas zbrojnej wyprawy na Litwę, otrzymał rycerski pas. W darze wdzięczności pozostawił Sztumowi swoje barwy herbowe, które do dziś zdobią chorągiew miasta (biały pas na czerwonym polu).
Podczas wielkiej wojny polsko-krzyżackiej (1409-1411) Sztum został zajęty i spustoszony przez dowodzone przez Jędrzeja z Brochocic wojska polsko-litewskie, maszerujące spod Grunwaldu na Malbork. Po nieudanym oblężeniu zakonnej stolicy, w zamku sztumskim jeszcze przez 3 tygodnie polska załoga odpierała krzyżackie szturmy, oddając warownię dopiero na rozkaz Władysława II Jagiełły. Warto dodać, że w bitwie pod Grunwaldem brał udział również sztumski wójt Henryk Potendorf.
W roku 1416 wielki mistrz Michael Küchmeister von Sternberg nadał Sztumowi prawa miejskie. Miasto nosiło wówczas niemiecką nazwę Stuhm. Lokatorem miasta został Ambroży Gerhardt von Schönenberg. Leżące na wyspie miasto zostało otoczone murem z dwiema bramami oraz 11 basztami. W jakiś czas później, przeprowadzona została rozbudowa Sztumu, przy czym najbardziej przyczynili się do tego słynny budowniczy zakonny Mikołaj Fellenstein i mistrz murarski Hannus Bolle z Gdańska.
Po II pokoju toruńskim kończącym wojnę trzynastoletnią w 1466 roku Sztum i Malbork, wraz z ziemią chełmińską, Warmią i zachodnią częścią ziemi pruskiej (Pomorzem Nadwiślańskim) znalazły się pod protektoratem Korony Polskiej. Załoga krzyżacka opuściła jednakże warownię sztumską dopiero w styczniu 1468 roku. Urząd starosty objął Ścibor Bażyński, którego ród dzierżawił miasto i zamek do 1503 roku. W latach 1468–1772 Sztum był miastem powiatowym w województwie malborskim oraz miejscem sejmików tegoż województwa.
Wraz z upadkiem zakonu krzyżackiego miasto straciło swoje znaczenie. Od tego momentu zamek, jako twierdza osłonowa przed Malborkiem nie odgrywał już żadnej roli. Utracone przez Zakon tereny (bez Warmii) tworzyły autonomiczny kraj, powiązany z Koroną Polską unią personalną. W jakiś czas później, królowie polscy przestali uznawać postanowienia przywileju inkorporacyjnego dla Prus. Przeciw polskim planom aneksyjnym i o niezależność tej ziemi walczyli w XV i XVI wieku na drodze politycznej liczni obywatele Prus, m.in. Georg Kleefeld i wojewoda malborski Achacy Czerna (1485-1565). Ostatecznie, mimo sprzeciwu Stanów Pruskich, odrębność Prus Królewskich została zniesiona dekretem lubelskim z 1569 roku. W 1553 roku król Zygmunt II August potwierdził prawa miejskie dla Sztumu, którego polska nazwa pojawiła się po raz pierwszy w dokumentach kilkanaście lat później (w 1565 roku). W czasie reformacji, pod koniec XVI wieku, w Sztumie została utworzona parafia ewangelicka, a jej pierwszym pastorem został Georg Fabricius.
Spór o koronę szwedzką, pomiędzy polskim królem Zygmuntem III Wazą i królem szwedzkim Gustawem II Adolfem Wazą, doprowadził do konfliktu Polski ze Szwecją. Podczas pierwszej okupacji szwedzkiej (1626-1629) miasteczko uległo zubożeniu. Po przegranej bitwie pod Trzcianą w zamku sztumskim schronił się sam Gustaw II Adolf. Na mocy rozejmu w Starym Targu, miasto wraz z zamkiem znalazły się w rękach elektora brandenburskiego, aż do zawarcia następnego rozejmu w Sztumskiej Wsi w roku 1635. W 1655 roku, jeszcze przed upływem rozejmu, król szwedzki Karol X Gustaw, ponownie zaatakował Polskę. Sztum dostał się znów pod okupację szwedzką. Miasto popadło wówczas w nędzę, a jej dopełnieniem stał się wielki pożar w 1683 roku, podczas którego spłonął ratusz. Walka o dominację nad Bałtykiem kontynuowana była także w XVIII wieku. W wojnie północnej (1701-1721) Sztum został po raz kolejny obsadzony przez szwedzkie oddziały, a w latach 1709-1710 przez miasto przeszła epidemia dżumy, pochłaniając wiele ofiar.
Po I rozbiorze Polski Sztum znalazł się na terytorium Królestwa Prus. W roku 1818 roku utworzono powiat sztumski. W mieście zaczęli osiedlać się urzędnicy niemieccy i przedsiębiorcy, dzięki temu Sztum powoli rozwijał się. Ludność niemiecka w Prusach Zachodnich stanowiła wtedy około 50% liczby mieszkańców. Przeprowadzenie linii kolejowej z Torunia do Malborka (w 1883 roku), a także budowa zakładów przemysłowych spowodowały dalszy rozwój gospodarczy i demograficzny oraz zaowocowały inwestycjami w infrastrukturę miejską (budowa szpitala, rozbudowa kościoła parafialnego, założenie Banku Ludowego, rozpoczęcie budowy więzienia, elektryfikacja, budowa wodociągów). Starania o ściągnięcie do Sztumu jednostki wojskowej, podejmowane przez landrata Waltera von Auwersa, mające na celu gospodarcze ożywienie mocno zdominowanego przez rolnictwo okręgu sztumskiego, zostały w roku 1913 uwieńczone sukcesem. Zbudowane w Sztumie koszary, zostały ukończone jeszcze w tym samym roku i Sztum został miastem garnizonowym.
Po upadku cesarstwa niemieckiego w 1918 roku Sztum stał się centralnym punktem walki o sprawę polską na Dolnym Powiślu. Plebiscyt w 1920 roku przesądził o pozostaniu miasta w granicach niemieckich (za Niemcami opowiedziało się około 74% mieszkańców). W latach 1920-1939 na ziemi sztumskiej działały powstałe już wcześniej organizacje: Związek Polaków w Niemczech, Polsko-Katolickie Towarzystwo Szkolne, Towarzystwo Młodzieży. Dzięki wsparciu ze strony Rządu Rzeszy doszło z końcem lat dwudziestych do gospodarczego ożywienia okolic Sztumu. Po przejęciu władzy przez narodowych socjalistów (1933) stało się to jeszcze bardziej widoczne, ale polityka nowych władz przyniosła represje, skierowane przeciwko żydowskim i polskim mieszkańcom powiatu. Utrwalone przez stulecia dobrosąsiedzkie współżycie pomiędzy Niemcami, Polakami i Żydami zostało teraz zniszczone. Do najbardziej smutnych wydarzeń z tego okresu zaliczyć należy spalenie synagogi w Sztumie w nocy z 9 na 10 listopada 1938 roku (w czasie tzw. Kristallnacht).
Po wybuchu II wojny światowej, od jesieni 1939 roku powiat sztumski należał do nowo utworzonego Okręgu Rzeszy Gdańsk-Prusy Zachodnie. W czerwcu 1941 roku rozkwaterowane zostały w Sztumie oddziały Dywizji Piechoty "Greif" (Gryf), maszerującej na wschód. Z załamaniem się frontu wschodniego zakończyło się spokojne życie mieszkańców Sztumu. Na krótko przed wkroczeniem rosyjskich oddziałów ewakuowano na zachód prawie 90% mieszkańców Sztumu. 25 stycznia 1945 roku Sztum został bez walki zajęty przez oddziały sowieckie. Po wkroczeniu Armii Czerwonej do miasta wiele budynków w Sztumie zostało podpalonych. W następstwie tego centrum miasta zostało zniszczone w 50%. Po zakończeniu wojny miasto zostało przyłączone do Polski.