В 1578 году воеводы Стефана Батория вторглись в юго-восточную Ливонию и сумели отбить у Москвы почти все ее прошлогодние завоевания. На сей раз польско-литовские войска действовали согласованно со шведами, которые почти одновременно атаковали Нарву, причем король Магнус при таком повороте событий счел за лучшее перейти на сторону Речи Посполитой. В октябре московские войска под командованием воевод Ивана Голицына, Василия Тюменского и др. численностью до 18 тысяч человек предприняли контрнаступление и попытались отбить взятый поляками Венден (ныне латвийский город Цесис). Но споря о том, кто из них главнее, упустили время, что позволило польско-литовским войскам под командованием гетмана Сапеги соединиться со шведским отрядом генерала Бое и своевременно прийти на помощь осажденным. 21 октября 1578 года союзники решительно атаковали московское войско Голицына, которое едва успело построиться. Первой дрогнула татарская конница — не выдержав огня, она обратилась в бегство. После этого московское войско отступило к своему укрепленному лагерю и отстреливалось оттуда до темноты. Ночью Голицын с приближенными бежал в Дерпт. Следом устремились и остатки его воинства.
Честь московской армии спасли артиллеристы под командованием окольничего Василия Федоровича Воронцова, которые не бросили свои орудия и остались на поле боя, решив драться до конца. На следующий день оставшиеся в живых герои, к которым присоединились решившие поддержать своих товарищей отряды воевод Василия Сицкого, Данило Салтыкова и Михаила Тюфикина вступили в битву со всей польско-литовско-шведской армией. Расстреляв боезапас и не желая сдаваться в плен, московские артиллеристы частично были перебиты, а частично повесились на своих пушках. По сведениям ливонских летописей, московское войско потеряло убитыми под Венденом 6022 человека и 17 артиллерийских орудий.
К началу кампании 1579 года Стефан Баторий и Иван Грозный располагали примерно равными по численности главными армиями по 40 тысяч человек каждая. Но после поражения под Венденом Иван Грозный уже не был уверен в своих силах и предложил начать мирные переговоры. Возобновив мирные переговоры с поляками и литвинами, царь, однако, решил летом 1579 года нанести удар по шведам и взять наконец Ревель. Для этого похода в Новгород были стянуты войска и тяжелая осадная артиллерия. Но Стефан Баторий не желал заключать мир на царских условиях и готовился продолжить войну. Определяя направление главного удара, он отверг предложения идти в Ливонию, где было много крепостей и царских войск (до 100 тыс. чел.) и где борьба грозила его армии большими потерями. К тому же в разоренной многолетней войной Ливонии не хватало продовольствия и было мало добычи для наемников. Поэтому король решил нанести удар там, где его не ждали — овладеть Полоцком, обеспечить тем самым безопасный тыл своим позициям в юго-восточной Ливонии и получить важный плацдарм для похода на московские земли.
В начале августа 1579 года войско Стефана Батория (30–50 тыс. чел.) появилось под стенами Полоцка. Одновременно шведские войска вторглись в Карелию. В течение трех недель войска Батория пытались зажечь город артиллерийским огнем, но его защитники, возглавляемые воеводами Телятевским, Волынским и Щербатым, успешно тушили возникавшие пожары. Этому благоприятствовала и установившаяся дождливая погода. Тогда польский король обещанием высоких наград и добычи уговорил своих венгерских наемников пойти на штурм крепости. Воспользовавшись ясным и ветреным днем, 29 августа 1579 года венгерская пехота бросилась к стенам Полоцка и с помощью факелов сумела их зажечь. Затем венгры, поддержанные поляками, ринулись сквозь пылающие стены крепости. Но ее защитники уже сумели вырыть на этом месте ров. Когда нападавшие ворвались в крепость, то были остановлены у рва залпом пушек. Понеся большие потери, нападающие отступили. Однако эта неудача не остановила наемников. Прельщенные легендами об огромных богатствах, хранящихся в крепости, венгерские солдаты, подкрепленные немецкой пехотой, вновь ринулись на приступ. Но и на этот раз ожесточенный штурм был отбит.