Большую опасность в те годы представляли для русских Швеция и Ливонский орден, поэтому на Балтике требовался порт для обороны земель, расширения торговли и создания собственного флота. И такой крепостью-портом на море, «которым опоясывается и замыкается земной круг», стал Ивангород. Место для новой крепости выбрали на крутой излучине реки Наровы — Девичьей горе, на которой в языческие времена собирались весной девушки и водили хороводы. Гора, уступами обрывающаяся к речным водам, весьма выгодно располагалась со стратегической точки зрения. Строгий четырехугольник с тремя приземистыми квадратными башнями по углам был врезан в высокий берег точным расчетом. Эти строгость и четкость были так же торжественно державны, как и слова летописи, отметившие появление нового города.
«В лето… прислал князь Иван Васильевич всея Руси воеводы своя и повелел поставить на рубеже близ моря Варяжского на устий Наровы город и нарече его в свое имя Ивангород; и оттоле пересташа немци ходить на Русь.»
Сначала Ивангородская крепость была столь небольшой, что по легенде мастера отмеряли длину ее стен ремнями, нарезанными из одной лошадиной шкуры. Она встала напротив Ливонского замка, стены которого настороженно высились на другом берегу Наровы. Расстояние между крепостью и замком равнялось всего 150 метрам — одному полету камня малой баллисты. Крепость представляла собой выдвинутую в сторону Нарвского замка цитадель, окруженную тыном, и примкнувший к ней огромный, но более низкий Большой Боярший город с круглыми башнями по углам. О появлении новой крепости иностранные послы и лазутчики спешно отправили депеши в столицу Швеции, магистру Ливонского ордена и королю Дании. Фогт Нарвы сообщал магистру Ливонского ордена:
«Замок и палисад на русской стороне еще не завершены, но четыре башни уже есть, стены с зубцами высотой 7 саженей и башни в 9 саженей высотой… Они не выстроили пока никакого укрепления и сруба, откуда могли бы стрелять пушки, что меня очень удивляет… Русские построили крепостные стены и башни и оставили их стоять без народа; ваша милость могла бы взять этот город, разве что некоторое кровопролитие может быть с нашей стороны.»
Возведение Ивангорода, а затем строительство наплавных мостов и дороги, соединившей крепость с Ямгородом, стоявшим на реке Луге, — все это сильно обеспокоило соседей. Гроссмейстер Ливонского ордена писал тогда, что новая русская крепость «будет процветать во вред нашему Ордену… и причинять большой вред замку Нарвы». И в августовское утро 1496 года 60 шведских кораблей вошли в устье Наровы. Рыцари числом 6000 человек, поддерживаемые огнем осадной артиллерии, бросились на штурм Ивангорода. Несколько дней длилась осада, несколько дней беспрестанно летели в крепость чугунные ядра, и над Ивангородом стояло зарево пожара. А в крепости было тогда всего два-три десятка стрельцов. Последний штурм длился семь часов, и, когда уже не осталось на стенах защитников, шведы ворвались в город.
Быстро дошла весть о захвате Ивангорода до Пскова, и нарочные, загоняя коней по осеннему бездорожью, поспешили с тревожной вестью в Москву. Но, не дожидаясь прихода московского войска, к Ивангороду двинулось уже псковское ополчение. И шведы, прослышав про то и не приняв бой, побежали «из града в море», взорвав стены и башни крепости.
В том же 1496 году она была восстановлена, и, как писал один из иностранных очевидцев, город стал «еще более красивым и более защищенным» Псковские и новгородские мастера не только возвели новые укрепления Ивангорода, но и пристроили к ним стены с башнями. Каменные стены, заменившие первоначальный тын крепости, заняли всю северо-западную часть Девичьей горы и защитили цитадель с наиболее уязвимой стороны — со стороны вражеского замка. В пристроенную часть входили две башни — Колодезная и Пороховая. Первая из них имела тайный спуск к колодцу, находившемуся у самой воды.
Через 10 лет по повелению московского князя в крепости начались новые строительные работы, в результате которых были возведены Замок и Передний город и произведена частичная модернизация каменных укреплений. Тогда появились сводчатые перекрытия башен, щелевидные бойницы с трапециевидной печурой и т. д.
Иван Грозный тоже расширял и укреплял Ивангород, но, как известно, Руси не удалось закрепить успехи начального периода Ливонской войны. Против нее выступили Речь Посполитая и Швеция: летом 1581 года шведы взяли Копорье, Корелу, Яму, а 17 сентября пал и Ивангород. Еще один этап в истории Ивангорода приходится на период шведского господства — почти весь XVII век. На руинах разрушавшейся юго-западной стены крепости в 1650-х годах был выстроен пороховой погреб; возможно, еще один пороховой амбар находился у восточной башни крепости.