Проиграв заочный бой за Запорожье, Петр решил пойти по пути Батурина — уничтожить Сечь. Туда было направлено три пехотных полка во главе с полковником П. Яковлевым. Первой 16 апреля была взята и сожжена Келеберда. Упорный бой шел за Переволочную, где находилось три тысячи запорожцев с большой флотилией, обеспечивавшей положение союзников на Днепре и контакты с Правобережьем. На помощь Яковлеву пришел Волконский, и после двухчасового боя город был взят. Все запорожцы и жители были убиты (в плен живьем взяли только 12 человек), жгли и вырезали также соседние курени. Голову замещавшего кошевого атамана (так как Сорочинский был еще в Крыму) послали в Запорожье для устрашения.
Штурм Сечи продолжался четыре дня, после чего 19 мая 1709 года Запорожье перестало существовать. Казаков и старшин вешали, им рубили головы, оскверняли могилы старых запорожцев. Все постройки были уничтожены, как писал Меншиков: «Все их места разорить, дабы оное изменническое гнездо веема выкоренить».
Единственное, что мог теперь предпринять Мазепа, это уговорить Карла срочно осадить Полтаву. Это была последняя надежда переломить ход событий, удержать шведов в Украине и дождаться подкрепления из Крыма. Тем более что войска Лещинского были отброшены от Львова, лишая Карла надежды на приход своего польского союзника.
В конце апреля началась осада Полтавы, которая продлилась три месяца. За это время внешнеполитическая ситуация серьезно изменилась. В начале июля Дания, Пруссия и Саксония заключили оборонительный союз. Османская империя занимала выжидательную позицию. Затяжная Русско-шведская война как нельзя больше ее устраивала. Пока она только разрешила запорожцам основать на своей территории Олешковскую Сечь на Нижнем Днепре.
Осада Полтавы шла вяло, хотя город регулярно бомбили шведские мортиры. Но казаки Мазепы просили Карла не разрушать город, в котором жило много их родственников и где хранились большие богатства. Уверяли, что сопротивление полтавчан можно сломить голодом[704]. К тому же у шведов была жесточайшая нехватка пороха — даже на караул заступали с незаряженными ружьями и набивали их только по тревоге. Тем не менее положение осажденных ухудшалось с каждым днем. Уже в мае горожане начали умирать от голода, более тысячи человек гарнизона выбыли из-за болезней и ран.
7 июня на военном совете Петр принял решение, что после нескольких отвлекающих маневров его армия переправится через Ворсклу и даст генеральное сражение шведам. 13 июня казаки Скоропадского совершили рейд по тылам противника. Одновременно были предприняты вылазки полтавчан и атаки небольших отрядов казаков. 16 июня в стычке с одним из этих отрядов под Нижними Млынами был ранен Карл XII. Находился он там вместе с Мазепой, а племянник гетмана, Войнаровский, командовал запорожцами, отражавшими нападение. Ранение короля имело много негативных последствий: суеверный страх дурного предзнаменования, невозможность оперативно командовать армией во время генерального сражения и т. д. Русские части располагались уже так близко к позициям шведов, что какие-то калмыки, желая отличиться, ворвались в дом, где размещался Мазепа, но были оттуда выбиты шведскими драгунами[705].
Не начав сражения, Карл его уже проигрывал. Не будучи уверен в планах Петра, он дал ему две недели, чтобы подготовиться к сражению. Никакие доводы разума король не желал принимать во внимание. Еще 11 июня Мазепа вместе с первым шведским министром графом Пипером ездил уговаривать Карла прекратить осаду Полтавы. Но тот упрямо заявил, что если Полтава не будет взята завтра, то послезавтра, если не через месяц, то через год, если не через пять лет, то через десять[706]. Лихорадка, следствие ранения, еще больше усиливала упрямство Карла. К тому же он оттягивал сражение, рассчитывая на подход татар или Лещинского. И только когда он получил дезинформацию, что к Полтаве идет 30 тысяч калмыков (их шло всего три тысячи), он принял решение вступить в бой. С российской стороны в нем принимали участие 42 500 человек помимо казаков Скоропадского, у Карла было только 25 тысяч, а шесть тысяч по-прежнему штурмовали Полтаву.