Поселение было основано в 1596 году как Нарымский острог и является самым старым населённым пунктом в Томской области.
После того, как князь Пегой Орды Воня в 1595 году отказался платить ясак Русскому царству, Борисом Годуновым было принято решение направить на земли племени Вони, для постройки русской крепости, отряд казаков из Берёзова и Ханты-Мансийска под руководством воеводы Тугарина Фёдорова, чьими усилиями там в 1598 (по другим данным — в 1596) году был построен Нарымский острог, который стал первым, из числа основанных русскими, населённым пунктом на территории нынешней Томской области. По поводу места основания Нарымского острога нет единого мнения.
Затем острог дважды переносился на новое место — в 1619 и 1632 годах. Доподлинно известно, что место было выбрано неудачно, река подмывала берег на 4-5 саженей в год и заставила передвигать острог в глубь острова, а в 1619 г. он сгорел, после чего город перенесли на нижнее устье Кети. Но река вновь начала разрушать берег и ломать острог. В 1632 г. последовал указ отыскать «крепкое и угожее место» для города. Такое место удалось найти, на нём он стоит и поныне.
В 1601 году Нарымский острог получил статус города и был создан Нарымский уезд. С 1725 Нарым стал центром округа Тобольской губернии, затем с 1782 г. центром — уезда Тобольского наместничества, а с 1804 г. — стал центром Нарымского уезда Томской губернии.
В 1819 году Нарымская городская дума подала прошение томскому гражданскому губернатору о её упразднении из-за недостаточности собираемых городских доходов. Прошение было удовлетворено, и из органов городского управления была оставлена одна ратуша. В 1822 году Нарым стал заштатным городом Томской губернии. Постановлением ВЦИК от 6 июня 1925 года Нарым лишён статуса города и признан селом.
В 1834 году ратуша была закрыта и управление городом перешло к старосте.