Szwedzi płynęli w dwóch grupach – w pierwszej grupie okręt admiralski „Tigern” i okręt wiceadmiralski „Pelikanen” (dowódca wiceadmirał Fritz), a w drugiej grupie pozostałe okręty z „Solenem” na czele.
Bitwa szybko podzieliła się na dwa starcia: szwedzkiego okrętu admiralskiego „Tigern” z polskim okrętem admiralskim „Rycerz Święty Jerzy” (walka między tymi dwoma okrętami zapoczątkowała całą bitwę) i pinką „Panna Wodna” oraz polskiego „Wodnika” ze szwedzkim „Solenem”. Po oddaniu salw z dział pokładowych doszło do abordażu. Do walki włączyła się również Panna Wodna, która ostrzelała Tigerna od rufy. W końcu po zaciętej walce szwedzki okręt „Tigern” został zdobyty przez żołnierzy polskich.
Walka ze znacznie większym Solenem była bardziej zacięta, a załoga zaatakowanego galeonu skutecznie opierała się załodze Wodnika. Gdy z pomocą Wodnikowi nadpłynęła fluita Biały Lew, Polacy uzyskali przewagę i wdarli się na pokład. Widząc beznadziejność sytuacji szyper szwedzkiego okrętu pobiegł do komory prochowej i doprowadził do wybuchu. Znaczna część walczących Polaków i Szwedów zdołała przeskoczyć na pokład Wodnika, reszta zginęła wraz z wysadzonym okrętem.