Корпус Левенгаупта с большим обозом продовольствия и боеприпасов (7 тысяч повозок) двигался из Риги на Украину на соединение в районе Стародуба с главными силами армии шведского короля Карла XII. Переправившись 19–21 сентября через Днепр у Шклова, Левенгаупт выступил к Пропойску (ныне Славгород). Петр I решил разбить корпус Левенгаупта, для чего направил вслед за ним корволант (летучий корпус) А. Д. Меншикова в составе 10 драгунских и 3 пехотных полков, посаженных на лошадей (всего 11,6 тысяч человек). Одновременно Петр I приказал кавалерийскому корпусу генерала Р. X. Боура, находившемуся в районе Кричева, оставив часть войск для наблюдения за армией Карла XII, основными силами (около 4 тысяч человек) идти на соединение с корволантом, а отряд численностью до 1 тысячи человек выслать к Пропойску, чтобы не допустить переправы шведов через р. Сож. 27 сентября корпус Левенгаупта достиг Лесной. Часть повозок под прикрытием 3-тысячного отряда Левенгаупт направил на Пропойск. В то же время основные силы, используя выгодные условия местности, заняли севернее деревни Лесной позицию на высотах, опиравшуюся в тылу на р. Леснянка и Вагенбург. Чтобы затруднить русским войскам подход к Лесной и развертывание их в боевой порядок, 6 шведских батальонов были выдвинуты впереди главных сил. Оценив обстановку, Петр I решил начать сражение, не дожидаясь подхода отряда генерала Боура.
Следует заметить, что обе стороны из-за слабой разведки имели недостаточное представление друг о друге. В русской армии узнали о том, что у Левенгаупта очень большой отряд, а не просто охрана «движущегося магазина», лишь за два дня до столкновения войск. Шведы же считали корволант авангардом большой русской армии (Тарле Е. В. Избранное сочинение в 4-х т. Т. З. Ростов н/Д., 1994. С. 225–226.)
Сражение у деревни Лесной продолжалось в течение всего дня — с 8 часов утра и до 19–20 часов вечера.
Петр I ударил настолько сильно, что успел нанести противник потери прежде, чем тот построился. Сильным пушечным огнем из лес русские заставили отступить сначала полки Делегарди, Сталя, затем Гензиуса и Левенгаупта.
Около 11 часов царь стал выстраивать гвардейскую бригаду вдоль опушки леса. Левенгаупт решил не допустить выхода всех русских сил из леса. Четыре батальона с десятью пушками и четырьмя конными полками по флангам атаковали русских гвардейцев: пять батальонов 1 резерве были готовы поддержать эту атаку. Интересно, что против шест батальонов преображенцев и семеновцев оказался их старый «знакомый» еще по боям в Лифляндии В. А. Шлиппенбах.
Шведская пехота правого крыла сбила Ингерманландский и Невский полки, захватила четыре пушки и грозила охватом с фланга, но развить успех не смогла: на помощь пришли преображенцы и семеновцы Понесшие потери передние русские шеренги отводились за задние, при надобности и в лес, как в укрытие. «Ежели б не леса, то б оны выиграли, понеже их 6 тысяч болше было нас», — писал позднее Петр I адмиралу Ф. М. Апраксину. Когда наступление шведов выдохлось, царь снова приказал построить боевую линию для атаки. В ответ Левенгаупт выкатил тяжелые орудия, и русские вновь отступили.
Но к этому времени подтянулся весь корволант. После полудня бой возобновился. Русские начали очередную атаку, имея в первой линии восемь батальонов пехоты и четыре драгунских полка. За ними сильная кавалерия, во второй линии — шесть, а за ней еще два драгунских полка. И эта линия поддерживалась пехотой, хотя и в два рази меньшей числом, чем пехотная поддержка первой линии. Две линды вместе с кавалерией вышли из леса и стали огнем теснить противника к вагенбургу — поставленным впритык повозкам. С тыла на охрану обоза накатывались казаки. Залпы плутонгами (взводами) и батальонами гремели один за другим. М. М. Голицын («сын Отечества» — так, гордясь, именовал его Петр) образно говорил, что от упавших пуль не стало$7
К трем часам дня неприятеля прижали к самым повозкам, отбив 5 него восемь пушек, среди которых были четыре свои, захваченные ранее. Тут получили известие, что на подходе драгуны Боура, и царь приказал прекратить огонь.
Первый период боя не склонил победы ни на ту, ни на другую сторону. Левенгаупт тоже послал за подмогой и вернул трехтысячный авангард. К пяти часам дня с прибытием Боура русские получили превосходство в силах и пошли вперед, используя огонь полковых пушек.
Шведский генерал Штакельберг контратаками левого крыла с трудом сдерживал натиск гвардейской бригады. Одно время залпы сливались в непрерывный гром. Бой перешел в рукопашную.
Дождь вперемешку со снежной крупой и дымной гарью хлестал теперь шведам в лицо; вторая шеренга едва видела первую. По словам шведов, русские наседали так упорно, что солдаты в схватках гибли от пики или багинета прежде, чем могли увидеть противника. До сумерек шведы выдержали 10 атак и с честью вышли из тяжелого положения: два часа вели оборону и отвечали контратаками. Усиливавшийся снегопад с порывистым ветром и градом и темнота прервали бой около 19 часов.
Всю ночь Петр I держал армию под ружьем, на расстоянии до 150 шагов от шведского вагенбурга, намереваясь утром повторить нападение. Орудийная дуэль затихла около 22 часов.
Левенгаупт принял решение спасти хотя бы часть корпуса и незаметно оторваться от противника. Под видом бивачных костров он поджег часть своих фур и, бросив больных, раненых, тысячу голов скота, посадил пехоту на обозных лошадей и приказал скрытно и спешно уходить через лес к Пропойску, увозя лишь порох и артиллерийские снаряды. Ночное отступление было кошмарным. Пушки вязли в разбитой тысячами колес колее, и их бросили в трясину. Части, блуждая в кромешной тьме и болотной жиже, теряли остатки сил. Отовсюду слышались стоны раненых, призывы умирающих, заблудившихся. Много рядовых и офицеров дезертировало назад в Лифляндию.
Обнаружив утром покинутый вагенбург, Петр I бросил в погоню драгун генерал-лейтенанта Пфлуга. Корволант же стоял на месте битвы три дня. 29 сентября Пфлуг настиг и порубил в Пропойске до полутысячи отставших и взял остатки обоза, правда, без военного снаряжения — порох и заряды Левенгаупт успел утопить в Соже. Потери шведов убитыми и ранеными составляли 6397 человек, из них 45 офицеров, около 700 солдат попали в плен. Русские потеряли 1111 человек убитыми и 2856 ранеными.
Победа под Лесной не была полной — были упущены часть трофеев и половина корпуса Левенгаупта.
Петр I победу под Лесной назвал «первой солдатской пробой» и матерью Полтавской баталии. Эта победа сыграла большую роль в укреплении морального духа русской армии, показала выдающиеся полководческие качества Петра I. Русские войска действовали в сражении на основе линейной тактики, но применяли ее творчески, исходя из обстановки: вступали в бой по мере подхода сил, не дожидаясь их полного развертывания, сочетали огонь со штыковыми ударами, искусно маневрировали на поле боя, обеспечивали тесное взаимодействие пехоты и конницы. Сражение у Лесной оказало серьезное влияние на дальнейший ход войны. Разгром корпуса Левенгаупта лишил Карла XII необходимых ему подкреплений, продовольствия и боеприпасов, сорвал его план похода на Москву.