В боях под Пирятином, Мглином, Недригайловым, Рашевкой местные жители-партизаны нанесли большой урон шведам.
Весной 1709 года отряд регулярных войск и украинских казаков под командованием полковника Яковлева разгромил перешедших на сторону Мазепы запорожцев кошевого атамана Гордиенко.
Чтобы запугать украинский народ, шведы жгли села и деревни, истребляли население, не щадя детей, стариков и женщин. Однако жестокость врага вызывала в народе не страх, а ненависть. Народная «малая война» разгоралась и весной 1709 года достигла апогея.
Нуждаясь в продовольствии и боеприпасах, потерпев неудачу во всех попытках открыть себе путь на Москву, шведы решили осадить Полтаву, где имелись и боеприпасы, и продовольствие, и откуда шли незащищенные дороги на Москву, на восток, к Воронежу.
3 апреля 1709 года шведы уже стояли под стенами Полтавы. Город был слабо укреплен земляным валом и ветхим деревянным частоколом, в котором имелись бойницы. Карлу казалось, что при таком состоянии обороны Полтава падет после первого же выстрела. Но он ошибся и на этот раз. Четырехтысячный гарнизон города, усиленный вооруженными горожанами, выдержал трехмесячную осаду. Командир гарнизона полковник А. С. Келин показал себя даровитым военачальником. Шведы рыли подкопы и закладывали в них мины, но русские делали контрподкопы и вынимали заложенный шведами порох. Не раз осажденные отчаянными вылазками отбрасывали врага от городских стен, нанося ему большой урон.
Вскоре к Полтаве подошли свежие войска под командованием Меншикова. На заре 7 мая русская пехота перешла мост через Ворсклу, а конница переправилась через нее вплавь. Русские выбили шведов из полевых укреплений и взяли в плен 300 солдат и несколько офицеров. 15 мая русскому отряду под командованием бригадира Головина удалось прорваться в город на помощь гарнизону.
Шведские войска 15, 24 и 29 мая штурмовали Полтаву, но каждый раз, понеся большие потери, откатывались назад. В ответ на предложение сдаться полтавчане предприняли еще две успешные вылазки.
А в это время из Азова через степи спешил в Полтаву Петр I. Чутье полководца подсказывало ему, что подошло время для перехода в наступление. «Объявляем вам, — писал он Долгорукому и гетману Скоропадскому, — что мы здесь намерены неприятеля всеми силами атаковать». Из Харькова царь писал Меншикову, что будет «как возможно поспешать», и требовал от него решительных действий.
Готовилась «генеральная баталия».
4 июня Петр I прибыл в армию, действовавшую под Полтавой. Теперь русское войско совсем не походило на то, которое беспорядочно отступало от Нарвы осенью 1700 года. Лицом к лицу с врагом стояли солдаты, закаленные в боях, хорошо вооруженные и обмундированные, и начальствовали над ними не наемники-иноземцы, готовые при случае изменить России, а преданные родине русские офицеры.
Изменилось за эти десять лет и шведское войско, но значительно к худшему. Истощенные, голодные и оборванные, заброшенные волей честолюбивого короля в чужую землю, солдаты не хотели сражаться и нередко отказывались выполнять приказы своих офицеров. Шведам не хватало вооружения и боеприпасов: они располагали всего четырьмя пушками, обеспеченными зарядами.
Однако и осажденные полтавчане ко времени прибытия Петра I защищались уже из последних сил. Записка, вложенная в пустое ядро, которым из Полтавы выстрелили в русский лагерь, расположенный на другом берегу Ворсклы, извещала о том, что в крепости порох на исходе.
16 июня на военном совете Петр I решил дать шведам бой. В ту же ночь Карл XII с несколькими драгунами напал на русский разъезд и был ранен в ногу. Обе стороны готовились к бою. 20 июня русские войска начали сближение со шведами и переправились через Ворсклу у деревни Черняхово.
Шведы сделали еще одну попытку овладеть Полтавой, чтобы, взяв ее, отбиться от Петра I. 21–22 июня они непрерывно штурмовали крепость. Но полтавчане еще раз отбили неприятеля, и он отступил, бросив на поле боя 1700 убитых. Тогда шведы оставили у города заслон, а сами двинулись навстречу русским. 25 июня противники находились на расстоянии четырех миль один от другого. Русские поспешно укреплялись на поле будущего боя.
В ночь на 26 июня Петр I узнал от командовавшего русской пехотой фельдмаршала Б. П. Шереметева, что унтер-офицер Семеновского полка, родом немец, исчез из лагеря. Боясь, что перебежчик может рассказать врагу о русском лагере, Петр I созвал военный совет и пересмотрел составленный ранее план боя. В частности, этот план предусматривал участие в битве полка новобранцев, одетых в мундиры серого сукна. Узнав это, шведы могли нанести главный удар именно по этому полку и прорвать здесь линию русских войск. Петр I приказал испытанным в боях солдатам Новгородского полка отдать свои мундиры новобранцам, а самим надеть серые мундиры. Эта предосторожность оказалась не лишней.
В то же утро собрал свой военный совет и Карл XII. Продуманного плана битвы у шведов не было.