Штурм окончился неудачно и началась осада Полтавы. 27 мая у деревни Крутой Берег недалеко от Полтавы сосредоточилась русская армия. Шведы штурмовали Полтаву 15, 24 и 29 мая и в крепостных рвах легли три тысячи шведских солдат. Восемь раз Карл XII предлагал полковнику Келину сдать город. Ко дню Полтавской битвы в крепости оставалась одна бочка пороха, а пушки давно стреляли камнями и гвоздями.
В начале июня под Полтаву прибыл Петр I. На военном совете было решено дать шведам «генеральную баталию». Полтавский гарнизон был извещен об этом запиской в посланном в город ядре.
25 июня русская армия укрепилась у деревни Яковцы, в пяти километрах от Полтавы. Битву было решено начать 29 июня, в день рождения Петра. 21 и 22 июня шведы отчаянно штурмовали Полтаву, потеряв за два дня более двух тысяч солдат. Не имевший каменной крепости город выстоял перед всей шведской армией.
В XVIII веке выбор позиции для генерального сражения имел очень важное значение. Обычно именно генеральное сражение решало судьбу всей войны. Позицию выбирал Петр и вынудил Карла атаковать в направлении, выгодном русской армии. Тыл армии Петра прикрывал обрывистый и практически неприступный берег Ворсклы. Левый фланг защищал Яковецкий лес, доходивший почти до самой Полтавы. Правый фланг был открыт, а перед фронтом армии располагалось ровное поле около двух километров в глубину. За ним стоял Будищенский лес. Яковецкий и Будищенский леса разделяло открытое пространство шириной чуть более километра. Только здесь шведские войска могли пройти для атаки русской армии.
Понимая, что наступление шведов начнется именно здесь, Петр распорядился построить укрепленную линию из шести поперечных редутов для двух батальонов пехоты. Редуты, четырехугольные земляные укрепления, были расположены друг от друга на расстоянии двухсот метров, длины полета фузейной пули. К поперечным редутам перпендикулярно были построены еще четыре редута, два из которых к началу битвы закончить не успели. За редутами был выстроен укрепленный лагерь для всей русской армии.
Шведская армия в сражении атаковала всем фронтом и была очень сильна мощью первоначального удара. Наступающая шведская армия натыкалась на четыре продольных редута и должна была выбирать — штурмовать с большими потерями редуты, или идти мимо них под сильным ружейно-пушечным огнем. Пройдя четыре продольных редута, шведская армия выходила на линию из шести поперечных редутов. Опять она должна была их атаковать и пройти сквозь них под перекрестным огнем. Здесь в укрепленном лагере шведов встречали русские полки. Европейские армии стали уделять внимание инженерным работам на поле боя только через сто лет.
Русская армия насчитывала 42 000 воинов — 58 батальонов пехоты, 17 полков конницы и имела 72 пушки. Шведская армия насчитывала 32 000 солдат. Всего шведы имели 40 пушек, но в битве стреляли только 4 — Карл не придавал артиллерии решающего значения. Шведские пушки имели от 40 до 120 выстрелов на орудие и имели достаточно пороха. Утверждение некоторых шведских историков о том, что пушкам нечем было стрелять, не соответствует действ ительности.
К утру Полтавской битвы в десяти редутах расположились два батальона Белгородского полка и части полков Нечаева и Неклюдова под командой бригадира С. Айгустова. За редутами развернулись 17 кавалерийских полков А. Меншикова. Армия с полевой и полковой артиллерией была расположена в укрепленном лагере. Украинские казачьи полки гетмана Скоропадского контролировали переправы через реки Псел и Хорол, отрезая шведам пути на
Правобережную Украину и Польшу. В случае поражения шведы могли отступать только на юг, к реке Переволочне. Линия редутов, два укрепленных лагеря у Яковцов и Семеновки, укрепления у переправы — у Петра была сильная позиция.
В первой линии атаки Карл XII выстроил пехоту в четыре голубооких колонны. Во второй линии в шести колонны выстроилась конница. 6000 шведов, два батальона пехоты и шесть эскадронов конницы, а также 3000 казаков И. Мазепы оставались у Полтавы. Они прикрывали обоз, охраняли переправу через реку Ворсклу ниже Полтавы. В бой готовились идти 25 000 шведских солдат — 24 батальона пехоты и 40 эскадронов конницы. В ночь на 26 июня при сшибке с казачьим пикетом был ранен в ногу король Карл XII. Полтавским сражением ему пришлось руководить лежа.