Потерпев неудачу 3 июля 1708 года у Головчина, русская армия отступила за Днепр и сосредоточилась в укрепленном лагере у местечка Горки. Не дождавшись прибытия корпуса генерала Адама Людвига Левенгаупта, выступившего в июне из Риги с большим транспортом продовольствия и боеприпасов (свыше семи тысяч повозок) на соединение с главной армией, Карл XII в августе двинулся из Могилева на Смоленск, но был остановлен русской армией и повернул на Украину. В конце сентября шведы вышли к Костеничам (по дороге на Стародуб) и остановились в ожидании корпуса Левенгаупта.
Переправившись 19–21 сентября 1708 года через Днепр у Шклова, Левенгаупт выступил к Пропойску (ныне Славгород). Петр Первый решил разбить корпус Левенгаупта, для чего направил вслед за ним корволант (летучий корпус) А.Д. Меншикова в составе 10 драгунских полков и 10 батальонов ездящей пехоты (семь тысяч конницы и пять тысяч ездящей пехоты). Отряду придана была легкая полковая артиллерия. Обоз состоял из навьюченных лошадей. При этом численность противника, по данным разных историков, колебалась от 13 до 16 тысяч человек и 16–17 пушек. Одновременно Петр Первый приказал кавалерийскому корпусу генерала Р.X. Боура, находившемуся в районе Кричева, оставив часть войск для наблюдения за армией Карла XII, основными силами (около четырех тысяч человек) идти на соединение с корволантом, а отряд численностью до одной тысячи человек выслать к Пропойску, чтобы не допустить переправы шведов через р. Сож.
27 сентября 1708 года корпус Левенгаупта достиг Лесной. Часть повозок под прикрытием трехтысячного отряда Левенгаупт направил на Пропойск. В то же время основные силы, используя выгодные условия местности, заняли севернее деревни Лесной позицию на высотах, опиравшуюся в тылу на реку Леснянка и вагенбург (военный лагерь). Чтобы затруднить русским войскам подход к Лесной и развертывание их в боевой порядок, шесть шведских батальонов были выдвинуты впереди главных сил. Оценив обстановку, Петр Первый решил начать сражение, не дожидаясь подхода отряда генерала Боура.
Следует заметить, что обе стороны из-за слабой разведки имели недостаточное представление друг о друге. В русской армии узнали о том, что у Левенгаупта очень большой отряд, а не просто охрана «движущегося магазина», лишь за два дня до столкновения войск. Шведы же считали корволант авангардом большой русской армии.
Сражение у деревни Лесной продолжалось в течение всего дня – с 8 часов утра и до 19–20 часов вечера.
Петр Первый атаковал так внезапно и сильно, что успел нанести противнику потери прежде, чем тот построился. Сильным пушечным огнем из леса русские заставили отступить сначала полки Делегарди, Сталя, затем Гензиуса и Левенгаупта.
Около 11 часов царь стал выстраивать гвардейскую бригаду вдоль опушки леса. Левенгаупт решил не допустить выхода всех русских сил из леса. Четыре батальона с десятью пушками и четырьмя конными полками по флангам атаковали русских гвардейцев: пять батальонов в резерве были готовы поддержать эту атаку. Интересно, что против шести батальонов преображенцев и семеновцев оказался их старый «знакомый» еще по боям в Лифляндии В.А. Шлиппенбах.
Шведская пехота правого крыла сбила Ингерманландский и Невский полки, захватила четыре пушки и грозила охватом с фланга, но развить успех не смогла: на помощь пришли преображенцы и семеновцы. Понесшие потери передние русские шеренги отводились за задние, а при надобности и в лес, как в укрытие. «Ежели б не леса, то б оныя выиграли, понеже их 6 тысяч болше было нас», – писал позднее Петр Первый адмиралу Ф.М. Апраксину. Когда наступление шведов выдохлось, царь снова приказал построить боевую линию для атаки. В ответ Левенгаупт выкатил тяжелые орудия, и русские вновь отступили.
Но к этому времени подтянулся весь корволант. После полудня бой возобновился. Русские начали очередную атаку, имея в первой линии восемь батальонов пехоты и четыре драгунских полка. За ними шла сильная кавалерия, во второй линии – шесть, а за ней еще два драгунских полка. И эта линия поддерживалась пехотой, хотя и в два раза меньшей числом, чем пехотная поддержка первой линии. Две линии вместе с кавалерией вышли из леса и стали огнем теснить противника к вагенбургу – поставленным впритык повозкам. С тыла на охрану обоза накатывались казаки. Залпы плутонгами (взводами) и батальонами гремели один за другим.
К трем часам дня неприятеля прижали к самым повозкам, отбив у него восемь пушек, среди которых были четыре свои, захваченные ранее. Тут получили известие, что на подходе драгуны Боура, и царь приказал прекратить огонь.
Первый период боя не склонил победы ни на ту, ни на другую сторону. Левенгаупт тоже послал за подмогой и вернул трехтысячный авангард. К пяти часам дня с прибытием Боура русские получили превосходство в силах и пошли вперед, используя огонь полковых пушек. Шведский генерал Штакельберг контратаками левого крыла с трудом сдерживал натиск гвардейской бригады.