Z powodu braku dużych dział Radziwiłł nie mógł skutecznie zakończyć oblężenia stacjonujących w mieście wojsk. Dopiero 8 czerwca przybyły posiłki dowodzone przez hetmana polnego litewskiego Jana Karola Chodkiewicza. W połowie czerwca do Inflant dotarły natomiast posiłki szwedzkie, których zamierzeniem było zniesienie blokady załogi szwedzkiej w Kokenhausen.
Do walnej bitwy doszło pod murami twierdzy, w otwartym polu. Hetman wielki litewski Krzysztof „Piorun” Radziwiłł dysponując 2900 jazdy, 300 piechurów oraz 17 dział (w bitwie użyto 9 dział, resztę ulokowano pod murami miasta) pokonał dowodzoną przez Carla Carlssona Gyllenhielma armię szwedzką liczącą ok. 5000 żołnierzy (4000 jazdy i 900 piechurów oraz 17 dział), która przybyła na pomoc obleganym Szwedom. Co do liczebności obu wojsk źródła podają różne sumy żołnierzy, ale w przypadku Rzeczypospolitej liczba ta oscyluje pomiędzy 3000 a nawet 4000, zaś w przypadku Szwedów w okolicach 5000.
thumb|450px|Rozstawienie wojsk pod Kokenhausen