Вскоре после начала осады среди осажденных и осаждающих распространился слух, что на помощь Нарве идёт из Ревеля корпус генерала Шлиппенбаха. В связи с этим Меншиков предложил Петру устроить «маскарад», то есть переодеть четыре полка в синие мундиры, чтобы они походили на шведов. Эти полки и должны были изображать корпус Шлиппенбаха. Маскарадный отряд во главе с Петром двинулся к крепости. Их притворно атаковали осаждающие во главе с Меншиковым и князем Репниным. На помощь ряженым из крепости вышел небольшой отряд шведских драгун. Русские войска попытались отсечь шведов от крепости. Однако те быстро раскусили обман и в порядке отступили. По русским данным удалось взять в плен четверых офицеров и 41 солдата. Несколько шведов было убито. Пётр был в восторге и повсеместно хвалился своей викторией. Полковник Рен за эту операцию был произведен в генерал-майоры. Но, увы, в целом операция провалилась.
Началась правильная осада крепости. Русское командование решило захватить два северных бастиона крепости – Викторию и Гонор, которые простреливались как с правого, так и с левого берегов Наровы. Для отвлечения внимания противника была запланирована атака на Ивангород, а также имитация атаки на южные бастионы Триумф и Фортуна. Первое заложение траншей для атаки на правом берегу реки Наровы последовало в ночь на 13 июня. В 750 метрах от бастиона Гонор был построен редут, от которого повели подступы к крепости и ход сообщения назад. В ночь на 16 и на 17 июня русские отрыли подступы на левом берегу Наровы, где в прошлую осаду была мортирная батарея. Осажденные противодействовали работам вылазками и артиллерийским огнем, но не могли остановить приближения подступов к крепости. 25 июня была начата атака на Ивангород. Апраксин, оставив при устье один полк, с остальными войсками подступил к Ивангороду.
17 июля к Нарве из Дерпта прибыл Пётр, 18 июля прибыла осадная артиллерия. 30 июля был открыт огонь с возведенных осадных батарей: с-пушечной – по бастионам Виктория и Гонор, а с мортирных – по внутренности атакованного фронта и городу. Непрерывный огонь батарей продолжался до 9 августа. До конца осады всего было выпущено 4556 бомб. 30 же июля из Дерпта прибыли пехотные полки, расположились напротив южных фронтов крепости и повели на них ложную атаку.
2 августа главная атака на левом берегу подступами приблизилась к бастиону Виктория. 6 августа была построена шестая батарея (№ 17) на гребне гласиса, чтобы сбить орудия с двойных фланков бастиона Виктория, защищавших подступ к бастиону Гонор. В этот же день обрушился левый фас бастиона Гонор, образовав пологий и широкий обвал. Фельдмаршал Огильви отправил тогда письмо коменданту Нарвы с предложением сдаться, не дожидаясь приступа.
Канонада, между тем, продолжалась. Русские войска приблизились ко рву. На следующий день, 7 августа, Горн прислал ответ, в котором говорилось, что он без королевского повеления сдать крепость не может. Ввиду такого ответа в русском лагере собрался военный совет, и решено было штурмовать Нарву 9 августа. Командования войсками возлагалось на фельдмаршала Огильви. Он назначил три штурмующие колонны: генералу Шенбеку было приказано ворваться в бастион Виктория, где тоже была брешь; генералу Чемберсу – двинуться на обвал бастиона Гонор; генералу Шарфу – к равелину напротив бастиона Глория. Ещё 8 августа штурмовые лестницы были скрытно поднесены в ближайшие подступы. Напротив бастиона Виктория, у самого контрэскарпа, была поставлена четырехпушечная батарея для стрельбы во время приступа. В ночь на 9 августа в подступы ввели назначенных для штурма гренадер.
Штурм крепости начался по сигналу в 2 часа дня 9 августа 1704 г. Шведы упорно оборонялись, защищая вершины обвалов, подрывая мины и скатывая штурмовые бочки. Но это не остановило русских – уже через 45 минут после начала штурма победители ворвались в Нарву.
Только тогда Горн приказал барабанщиком в знак сдачи ударить в барабаны. Однако рассвирепевшие русские солдаты не обращали на это внимание и кололи барабанщиков. Тогда сам Горн ударил в барабан. Тем не менее русские продолжали убивать в городе всех, кто попадался под руку, не делая разницы между солдатами и мирными жителями.
Пётр приказал навести порядок в городе и, сев на коня, обскакал нарвские улицы. По пути Пётр лично заколол двух русских мародеров. Прибыв к ратуше, где собралась знать города, Пётр увидел между ними и Горна. Царь подбежал к генералу и влепил ему увесистую плюху. Пётр кричал в гневе: «Не ты ли всему виноват? Не имея никакой надежды на помощь, никакого средства к спасению города, не мог ты давно уже выставить белого флага?» Потом, показывая шпагу, обагренную кровью, Пётр продолжал: «Смотри, эта кровь не шведская, а русская. Я своих заколол, чтоб удержать бешенство, до которого ты довел моих солдат своим упрямством». Мало того, царь велел посадить его в тот самый каземат, где по распоряжению Горна содержались коменданты сдавшихся крепостей (Нотебургской – полковник Густав Вильгельм Шлиппенбах и Ниеншанской – полковник Полев).