Тем временем Иоанн упорно продолжал войну в прибалтийских областях, где к войне с поляками присоединилась и война со шведами, потому что царь хотел добыть также и Ревель с другими эстонскими городами. После неудачной осады Ревеля Магнусом Иоанн в конце 1571 года сам приехал в Новгород, приказав полкам собираться в Орешке и в Дерпте. Но прежде ему захотелось попробовать, не согласятся ли шведы, испуганные его приготовлениями, уступить Эстонию без войны. Он предъявил шведскому королю громадные требования, а именно: чтобы тот признал его верховным своим государем, допустил внесение своего герба в русский, а главное — отказался от Ливонии. Требования, разумеется, не были приняты, и с обеих сторон началась оскорбительная переписка. «Воровство ваше всё наруже, а промётываетесь как гад разными виды», — писал царь, видя, что король не шлёт послов. «Ты до несносности глуп, до грубости надменен и без всякого воспитания, что надобно думать, яко бы отец твой был монах или крестьянин», — отвечал король.
В конце 1572 года Иоанн вступил в Эстонию с 80 000 войска и осадил город Пайду (Виттенштейн)[65]. 1-го января 1573 года город был взят. «Первая крепость, взятая московитами штурмом», — говорит ливонский летописец. Поручив дальнейшее ведение войны своим воеводам, царь возвратился в Новгород. Русские взяли несколько крепостей, но при замке Лоде (Коловерть) были разбиты шведами. В июле 1575 года было заключено перемирие со шведами на два года: Иоанн хотел обеспечить себя со стороны Финляндии, чтобы сильнее действовать в Ливонии. В январе 1577 года русское войско, в числе 50 000 человек, двинулось к Колывани (Ревелю): осада, продолжавшаяся полтора месяца, была неудачна. Зато сам царь совершил удачный поход в Ливонию: город за городом сдавались царю и его воеводам, с одной стороны, королю Магнусу — с другой. Но с отбытием царя дела переменились. Поляки и шведы взяли верх, в 1578 году нанесли русским сильное поражение близ Вендена, причём погибло четверо царских воевод; король Магнус, уже женившийся на царской племяннице, передался полякам. Следующий, 1579 год долженствовал быть решительным для Ливонии: Иоанн готовился к новому походу. Во Псков уже привезён был тяжёлый наряд (артиллерия), назначенный для осады Ревеля. Но этот наряд получил другое назначение: враг явился на русской земле.
Переговоры, начатые Стефаном Баторием с царём московским, не привели ни к чему. Иоанн относился к нему свысока, даже не хотел по обычаю называть его в грамотах «братом», а звал только «соседом», потому что Стефан стал королём не по происхождению своему и не по воле Божией, а по «многомятежному человеческому хотению» (то есть по избранию сейма). Ливонию царь по-прежнему называл «своей вотчиной» и уступок никаких не делал.
Вступая на престол, Стефан Баторий обещал возвратить Литве области, завоёванные у неё московскими государями, и хотел сдержать обещание. Кроме личных достоинств — достоинств искусного полководца, средства к успеху у Батория были: искусная, закалившаяся в боях наёмная пехота, венгерская и немецкая, исправная артиллерия, быстрое наступательное движение, дававшее ему огромное преимущество пред врагом, принуждённым растянуть свои полки по границам.
Иоанн, думая, что война, предпринятая за Ливонию, будет ведена в Ливонии, отправил туда большое войско; но Баторий летом 1579 года осадил Полоцк. Пришедшие на выручку московские войска не могли пробраться к городу и должны были удалиться в Сокол. После неудачного первого приступа Баторий сделал 3 августа второй приступ. Жители Полоцка усердно помогали воинам, бросались тушить пожары, когда они вспыхивали от неприятельских выстрелов; женщины и старики спускались на верёвках и под ядрами доставали воду из Двины. Но, несмотря на всё упорство защиты, Полоцк после трёхнедельной осады был взят Баторием. Вслед за тем после страшной резни был взят Сокол. 1580 год был ещё несчастнее для русских: Баторий брал город за городом (Велиж, Усвят, Великие Луки), а с другой стороны, шведский полководец Делагарди брал верх над русскими в Эстонии.