После установления полной блокады города и интенсивной бомбардировки русское командование возобновило переговоры. Новое письмо к Джавад-хану выглядело заметно мягче, но содержало требование дать определенный ответ в течение суток. Вместо извещения о сдаче парламентер принес ответ правителя Гянджи, в котором тот требовал уважительного к себе отношения: «Завтра день субботний, празднуемый жидами. Человека к вам не отправлю. Послезавтра, в воскресенье, отправлю к вам одного человека; ежели вы хорошо будете предлагать, я тоже взаимно хорошо буду отвечать». Цицианов вновь пригрозил штурмом, но Джавад-хан тянул время, соглашаясь вести переговоры через доверенное лицо. Они еще два раза обменивались посланиями. В последнем Цицианов пообещал после взятия города предать хана позорной смерти, а тот ответил, что погибнет, защищая стены. Видя, что угрозы на правителя Гянджи не действуют, князь переменил тон и выдвинул следующие условия: немедленная сдача крепости, присяга на подданство, дань размером 20 тысяч рублей в год, снабжение провиантом войск в Шамшадильском уезде, отказ от притязаний на этот уезд, выдача сына в аманаты. При соблюдении этих условий хан и его потомки оставались правителями в своих владениях. Однако и это предложение было отвергнуто. Одной из причин упорства Джавад-хана было бедственное положение русских войск: недостаток продовольствия и фуража, холод и болезни рано или поздно должны были вынудить их снять осаду. Но Цицианов не уходил восвояси не только потому, что это был бы «неслыханный для непобедимых российских войск стыд». Многочисленные перебежчики сообщали ему, что город держится из последних сил: хотя муки запасли достаточно, не хватало дров для выпечки хлеба и отопления жилых помещений. Водоводы были забиты мертвыми телами; жители или умирали от жажды, или пили тухлую воду и умирали от кровавого поноса.
Тем не менее «пересидеть» гянджинцев русское командование не надеялось — собственные силы были на исходе. Поэтому в ночь на 3 января 1804 года был назначен штурм. При разработке диспозиции Цицианов проявил себя опытным и дальновидным военачальником. Прежде всего он убрал из боевых порядков мусульманскую милицию, опасаясь, что в темноте она может переметнуться на сторону противника и наделать много бед. Войска были разделены на две колонны. Первую, под командой генерал-майора Портнягина, составили Кавказский гренадерский и Севастопольский полки. Они должны были прорываться в город через брешь, образовавшуюся после бомбардировки. Колонну из двух спешенных эскадронов нарвских драгун и двух батальонов 17-го егерского полка вел полковник Карягин. Всем солдатам было приказано щадить женщин и детей, запрещалось грабить дома до конца боя. Кроме того, для отвлечения внимания защитников две небольшие группы должны были имитировать приступ. Эти «фальшивые» атаки егерских команд под командой поручиков Никшича и Егулова помогли оттянуть значительные силы противника от места основного боя.
Сначала дело шло успешно — под покровом темноты атакующим удалось незамеченными подойти к самой стене, но тут защитники крепости стали кидать так называемые «подсветы» — пропитанные нефтью зажженные бурки, расстреливая тех, кто карабкался по лестницам. Несмотря на это, солдаты 17-го егерского полка сумели взобраться на стену и захватили две башни. При взятии одной из них Джавад-хан погиб в рукопашной схватке, защищая орудие, — он исполнил свое обещание. Прорваться сквозь брешь в стене не удалось — там скопилось множество защитников. Тогда Портнягин приказал приставить лестницы и по ним взбираться на стены. Первая попытка не удалась, но когда русские егеря своими меткими выстрелами загнали персов в укрытие, несколько солдат вместе с Портнягиным оказались наверху. Вскоре защитники опомнились и стали выбивать всех, кто появлялся на стене. Так погиб поручик Кейт, пуля сразила наповал майора Бартенева. Только подполковник Симанович сумел уцелеть под свинцовым дождем и выручить Портнягина, который с трудом отбивался от наседавших врагов. Тем временем вторая колонна сломила сопротивление защитников главной башни и подняла на ней русское знамя. Другую башню захватили егеря под командой полковника Лисаневича.