Bennigsen, który miał 4 400 żołnierzy i 18 dział, 27 maja około godziny 3 nad ranem wyruszył z Trab i około południa podszedł pod Lipniszki.

Pomimo że litewskie dywizje Jasińskiego i Chlewińskiego, mające łącznie ponad 5 000 żołnierzy, posiadały przewagę liczebną, Bennigsen postanowił zaatakować. Bitwę rozpoczęła rosyjska artyleria, której wkrótce odpowiedziały działa litewskie. Następnie oddziały Bennigsena w dwóch kolumnach sforsowały rzeczkę Gawię i ustawiły się w szyku bojowym. Jasiński cofnął swe siły za Lipniszki.

Po przygotowaniu artyleryjskim wojska rosyjskie i litewskie stoczyły zacięty kilkugodzinny bój. Pod koniec walk Jasiński rzucił do szarży kawalerię, jednak atak się nie powiódł. Gdy Bennigsen zagroził lewemu skrzydłu litewskiemu, Jasiński, który obawiał się nadejścia dodatkowych oddziałów rosyjskich, nakazał odwrót do Lidy. Bennigsen przez krótki czas próbował ścigać cofających się Litwinów, po czym zawrócił do Lipniszek, skąd 28 maja odszedł do Iwia.

Litwini stracili w bitwie około 200 żołnierzy, natomiast Rosjanie - około 150 żołnierzy.