28 августа (
8 сентября)
1708 года шведы подошли к реке Тосна и начали имитировать подготовку к переправе, а сами основными силами продвинулись ниже по течению
[5]. 9 сентября Либекер приказал своим войскам начать переправу, возводя мост, однако по ним открыли огонь две русские бригантины. Шведы ответили артиллерийским огнём и вынудили русские корабли отойти. После нескольких стычек строительством моста уже занимались 1200 человек. Апраксин совершил контратаку, используя все свои силы, однако после часового боя и яростной штыковой атаки шведов он отвёл свои части: русские потеряли 900 человек убитыми и множество ранеными, шведы же — 86 человек убитыми и 291 ранеными
[3]. По другой версии шведы переправлялись на понтонах, и потери русских войск — сводного пехотного батальона и сводного драгунского полка — составили 105 убитых, 17 пропавших без вести и 255 раненых. На поле боя обнаружено 315 тел шведских солдат
[5].
После битвы между армиями возникло равновесие, которое никто не хотел нарушать. Апраксин не мог полными силами атаковать шведов, но и Либекер не обладал достаточными силами, чтобы разгромить русских. Шведы заняли весь ораниенбаумский берег, но русские к тому моменту успели доставить сохранившуюся часть провианта в Петербург. У шведов не было тяжёлой артиллерии для ведения осады города, а шведский флот не смог занять остров Котлин. Вскоре у шведов, измотанных стычками с войсками Апраксина, закончились почти все припасы и начался голод: солдатам пришлось забить почти всех лошадей
[3][1].
Либекер, осознавая масштабы потерь, приказал своей пехоте подняться на борт шведской эскадры и отступить как можно скорее, для чего перевёл свой лагерь к берегу моря. Однако это решение оказалось ошибочным, поскольку погрузке войск сильно мешали штормы и шквалистый ветер. В разгар эвакуации Апраксин принял решение атаковать лагерь, предварительно отправив к шведам своего посла с предложением сдаться. Получив отказ, он приказал русским перейти в атаку: пехота атаковала с фронта, а драгуны с флангов. Некоторая часть шведских солдат успела покинуть невское побережье, однако потери шведов были большими: во время эвакуации погибли 828 солдат и офицеров, многие попали в плен. Русские потеряли 50 человек убитыми и 220 ранеными. О разгроме Либекера под Петербургом в Лондон сообщил английский посол при Петре I
Чарльз Уитворт[4].
Поражение шведского отряда Либекера предрешило скорый
захват Россией Финляндии в ходе войны
[1], а победа русских войск под командованием Апраксина обезопасила Санкт-Петербург и позволила Петру высвободить больше войск для противостояния главным силам Карла XII
[4].