14 мая Меншиков подвел свои войска к левому берегу Ворсклы напротив города. На рассвете 15 мая около 1200 переодетых в шведскую форму солдат под командованием Алексея Головина перешли Ворсклу. У самой крепости они ворвались во вражеские окопы и перебили 200 солдат, затем отряду удалось пробиться в город.
Карл XII понимал, что у Полтавы сосредотачиваются крупные силы русских, но уходить категорически отказывался, ожидая поддержки от Лещинского и Крассоу. Овладение Полтавой стало для него вопросом престижа. 23 мая, заложив под валы мины, три тысячи шведов бросились в атаку. Осажденным удалось разрядить мины, а отряд Карла был отбит.
Вечером 1 июня Полтава была обстреляна зажигательными бомбами. Пока в городе тушили пожар, шведы ворвались на крепостной вал, но снова были опрокинуты и отброшены.
2 июня фельмаршал Реншильд предъявил коменданту Келину ультиматум о сдаче на почетных условиях. В противном случае он угрожал полным истреблением гарнизона и жителей города. Келин, не раздумывая, отклонил требования, заявив, что у него уже семь таких писем.
4 июня под Полтаву, в село Крутой Берег, прибыл Петр I. Об этом было сообщено защитникам города в письме, вложенном в разряженное ядро. 16 июня военный совет русских пришел к выводу, что единственным способом предупредить падение Полтавы является генеральное сражение. Подготовка к нему предусматривала переход главных сил русской армии на правый берег Ворсклы. Одновременно казакам было приказано занять все пути отхода шведских войск через Псел и далее в Польшу.
Шведская армия оказалась в тупике. Для наступления не хватало сил, но и отход был связан с большим риском. Во время рекогносцировки 17 июня Карл XII был ранен в ногу, по его армии поползли слухи, что король намеренно ищет смерти. «Северный Александр Македонский» понимал, что русская армия готовится к генеральному сражению и единственной возможностью обезопасить себя с тыла видел взятие Полтавы. Штурмы следовали один за другим. Тяжелые дни пережил город 21 и 22 июня, когда шведы были особенно настойчивы и потеряли свыше двух тысяч человек. Защитники Полтавы за время обороны потеряли убитыми 1186 воинов, ранено было 1200 человек, Карл же остался без шести с лишним тысяч солдат – т. е. пятой части армии, пришедшей на Украину. Надежды его получить поддержку не оправдались: корпус генерал-лейтенанта Гольца предоставил появление в Украине войск польской шляхты и шведского корпуса Крассоу.
19 июня тремя бродами основные силы русской армии перешли Ворсклу (остальные части переправились в ночь на 20 июня) и расположились на широкой открытой равнине у деревни Семеновки. Здесь был построен лагерь. Однако такая местность была удобной для линейного построения и дала бы большие преимущества сильной шведской коннице. 25 июня после осмотра лагеря Петр приказал перевести армию ближе к Полтаве и расположить у села Яковцы. Лощины, овраги и небольшие леса исключали возможность широкого кавалерийского маневра. Здесь была нужна пехота, которая и составляла основную силу русской армии.
За одну ночь был построен лагерь, защищенный с одной стороны крутым берегом Ворсклы, с другой – Яковецким лесом, с третьей – небольшой лощиной. Укрепления состояли из земляных валов и реданов в форме выступавшего наружу угла. Между валами и реданами оставались значительные промежутки, чтобы армия могла не только обороняться, но и быстро переходить в наступление. Перед лагерем простиралось небольшое ровное поле, шириной около полутора и длиной до трех километров. С востока оно примыкало к Яковецкому, с запада – к Малобудыщанскому лесу. Со стороны Полтавы пролегал единственно возможный путь наступления шведской армии. На этой части поля по распоряжению Петра I была создана передовая позиция: построено шесть поперечных (по отношению к направлению шведского наступления) и четыре продольных редута. (Кстати, подобные укрепления на полях битв в Европе появились еще не скоро.) Ружейный и артиллерийский огонь из редутов должен был расчленить линейный порядок вражеских полков.
Русское командование учло, что Карл XII обычно стремился нанести первый удар максимальными силами. Пехота и артиллерия, сконцентрированные в редутах, обеспечивали отражение первого натиска, вынуждали шведов дробить свои силы.
Все русские полки 26 июня заняли позиции, предусмотренные планом сражения. В редутах разместилась пехота Белгородского полка с артиллерией. За редутами расположилась конница под командованием Меншикова и Боура в составе 17 драгунских полков.