Część duchowieństwa oraz miasto Gdańsk nie byli zadowoleni, że Batory może kontynuować politykę swego poprzednika w sprawie dostępu Polski do morza. Sytuacja stawała się coraz bardziej napięta. Król zniósł nawet przywileje Gdańska za namową Karnkowskiego, chcąc doprowadzić to miasto do podporządkowania się jego wpływom. W końcu doszło do otwartego konfliktu między Batorym, a miastem Gdańsk. Wybuchła wojna w 1577 r., której decydująca bitwa rozegrała się nad Jeziorem Lubieszowskim. W walce tej Stefan Batory odniósł zwycięstwo, lecz nie udało mu się zdobyć Gdańska. Szalę zwycięstwa na stronę króla przechyliła flota duńska, która nie mogąc wesprzeć gdańszczan swym desantem poprzez flotę monarszą, dopuściła się sabotażu tych portów, które im zagrażały. Duńczycy zniszczyli, także Elbląg. Dopiero wówczas Gdańsk uznał Batorego królem. Miasto zapłaciło odszkodowania wojenne, z kolei władca Polski przywrócił Gdańskowi wcześniejsze przywileje.