Псков принадлежал к составу «двора» Грозного. Он находился на особом положении.
Во главе псковского гарнизона стоял один из старших «дворовых» бояр — князь Иван Шуйский. В 1581 г. к началу осады в составе гарнизона было, по одним сведениям, 1000, по другим — 2000 или 3000 конных детей боярских, 2500 стрельцов. В крепости находилось также 500 донских казаков во главе с их атаманом Мишкой Черкашениным. По словам современников, в Пскове проживало до 20 000 человек.
Значительная часть взрослого мужского населения взялась за оружие, чтобы оборонить город от поляков. Наступавшая на Псков королевская армия насчитывала 47 000 человек, а ее боевой состав включал 15 000 всадников и 12 000 пехоты.
Осознав наконец опасность, царь, казалось, проснулся от спячки. Летом князь Дмитрий Хворостинин вторгся в Литву, чтобы нарушить планы противника. Переправившись за Днепр, он разорил окрестности Орши, Шклова и Могилева. Русское наступление достигло цели. Баторий задержал приказ о наступлении на Псков, пока не получил известия об отходе русских из Литвы.
Укрепив гарнизон Пскова, русское командование разместило главные силы армии в районе Волока Ламского и Зубцова. При надобности эти силы могли быть использованы для обороны Москвы от татар.
Под стенами Пскова развернулось сражение, от исхода которого зависела судьба страны.
Псков был одной из лучших русских крепостей. Его окружал тройной каменный пояс.
Мощные стены имели общую протяженность 9 километров. Высота стен достигала 8-9 метров, толщина — около 5 метров. Враги застали город хорошо подготовленным к обороне. Командование заблаговременно сосредоточило здесь многочисленную артиллерию, создало запасы военного снаряжения и продовольствия.
Армия Речи Посполитой повела наступление на Псков через Полоцк и Опочку. В августе 1581 г. польские авангарды достигли окрестностей Пскова. Одновременно литовские отряды предприняли поход к Ржеве.
В дни литовского нападения Грозный с семьей находился в Старице. Неприятельские разъезды сожгли несколько деревень в непосредственной близости от его резиденции. Из окон дворца можно было видеть зарево пожаров. Литовское командование обсуждало планы пленения царя. Перед лицом опасности Иван IV отослал жену с младшим сыном прочь, а сам стал готовить крепость к обороне. С царем в Старице находилось не более 700 дворян и стрельцов. Между тем литовцы не приняли боя с сосредоточенными под Ржевой русскими полками и ушли к Пскову на соединение с главными силами. В начале сентября армия Батория приступила к правильной осаде Пскова. Проложив траншеи, осаждавшие вплотную подошли к крепостному рву у южной оконечности города. Свои батареи они установили против Свинузской башни. 7 сентября крепость подверглась мощной бомбардировке. Обстрел продолжался с утра и до поздней ночи.
В южной стене были сделаны большие проломы. На другой день королевская пехота предприняла общий штурм. Через проломы штурмовые колонны устремились на стены и захватили две башни, но все их усилия прорваться внутрь города оказались тщетными. Упорное кровопролитное сражение длилось более шести часов. Русские взорвали Свинузскую башню вместе с засевшими в ней неприятельскими солдатами и принудили врагов к отступлению.
Генеральный штурм города потерпел неудачу, вследствие чего королевская армия перешла к длительной осаде. Минеры пытались проложить минные галереи, чтобы подвести заряды под крепостную стену. Но псковичи «переняли» вражеские подкопы и разрушили их. Вражеские батареи в конце октября бомбардировали город калеными ядрами, рассчитывая вызвать пожар. Вслед за тем 2 ноября королевская пехота предприняла последнюю безуспешную попытку штурма. Защитники Пскова отбили приступ.
В октябре наступили ранние заморозки. Положение осадного корпуса заметно ухудшилось. Войска не были подготовлены к зимней кампании. В ноябре они покинули траншеи и отступили в лагерь. Туда же доставлена была с передовых батарей вся осадная артиллерия. Осада не удалась, и неприятель принужден был отныне ограничиться блокадой. Большие потери, холод и недостаток провианта оказали деморализующее действие на солдат. Многие из них разошлись по деревням в поисках продовольствия. Королевская рать быстро таяла. В таких условиях Баторий покинул армию и уехал в Польшу. За ним лагерь покинули многие шляхтичи и наемные солдаты, не получившие денег. Отъезд короля вызвал волнения в армии, справиться с которыми помогло известие о близком мире с русскими.
Защитники осажденного города терпели большие лишения. Запасы продовольствия истощились. Среди горожан начался голод. Но бедствия не сломили их мужества. Гарнизон Пскова постоянными вылазками тревожил неприятеля. Зная о критическом положении армии Батория, Шуйский предпринял попытку разгромить противника. 4 января 1582 г. он вывел из города войска гарнизона и попытался овладеть королевским лагерем. Выполнить этот план не удалось, и после неудачного боя русские отступили в крепость.