Армия Петра значительно превосходила силы шведов, в ее состав входили 42 тысячи регулярных и 5 тысяч иррегулярных войск. Кроме того, в последний момент подошли 3 тысячи калмыков хана Аюка, у ряда историков, в том числе у Бескровного, говорится о 30 тысячах калмыков, но эта цифра появилась, скорее всего, благодаря нерадивому писарю, поставившему еще один ноль в документе.
Еще больше было превосходство русских в артиллерии. В составе полевой артиллерии под Полтавой было: гаубиц — одна 1-пудовая, мортир: две 1-пудовых и одна полупудовая, пушек — две 12-фунтовых, двенадцать 8-фунтовых и четырнадцать 3-фунтовых, кроме того, 37 — 3-фунтовых пушек было в составе полковой артиллерии. Все эти данные приводятся без гарнизона Полтавы, о котором было сказано выше.
27 июня в 2 часа ночи шведская армия начала наступление. Впереди четырьмя колоннами шла шведская пехота, за ней шестью колоннами двигалась конница.
Шведам удалось взять два передовых редута. Однако перед следующим редутом из-за сильного огня русских им пришлось остановиться. Тогда Карл решил передвинуть войска влево и обойти редуты. Но шведская армия не могла поместиться между Будищенским лесом и продольными редутами, вследствие чего во время разгоревшегося здесь боя группа шведских войск из шести батальонов пехоты и десяти эскадронов конницы под командованием генералов Росса и Шлиппенбаха, отрезанная редутами, оторвалась аг основной части армии и укрылась в лесу севернее Полтавы.
Петр организовал отряд из пяти батальонов пехоты и пяти драгунских полков под командованием Меншикова, который нанес поражение оторвавшейся группе шведских войск и взял в плен генерала Шлиппенбаха. После этого войска Меншикова натолкнулись в лесу на крупный резервный отряд шведов и разгромили его. Направив к Полтаве часть своих войск для преследования остатков разгромленных сил противника, Меншиков во главе остального отряда прибыл к укрепленному лагерю.
Тем временем главным силам шведской армии с большими потерями удалось прорваться через линию редутов. Правый фланг шведских войск оказался под ударом со стороны русского лагеря. Командование русской армии воспользовалось этим и приказало открыть по врагу сильный артиллерийский и ружейный огонь, в результате чего шведы понесли большие потери и были отброшены к Будищенскому лесу.
После этого Петр принял решение дать сражение на открытой местности. Он вывел войска из лагеря и выстроил их в две линии. В целях наилучшей взаимной выручки каждый пехотный полк был построен в следующий боевой порядок: один батальон — в первой линии, другой — во второй линии. На флангах размещалась конница. В резерв было выделено девять батальонов, которые оставались в лагере. Артиллерия располагалась по всему фронту впереди боевого порядка. Шведская пехота была построена в одну линию, а кавалерия на флангах — в две линии.
Построив полки для решительной атаки, Петр обратился к солдатам со словами: «Воины! Вот пришел час, который решит судьбу отечества.
В девятом часу утра шведы перешли в наступление. Русские войска с близкого расстояния открыли сильный артиллерийский и ружейный огонь, который наносил врагу большой урон. Однако шведы продолжали атаку, настойчиво стремясь прорвать фронт русских войск. Началась рукопашная схватка. Правое крыло шведов стало теснить передовой порядок Новгородского полка. Первая линия русских войск была прорвана почти в самом центре.
В это время Петр лично повел в бой батальон второй линии Новгородского полка. Стремительным ударом русские войска смяли прорвавшегося противника и закрыли прорыв. Ожесточенный рукопашный бой шел по всему фронту. Русская конница охватывала фланги шведов. Конные полки под командованием Меншикова, сосредоточенные на левом фланге, стали угрожать тылу шведской армии. Противник дрогнул, начал отступать и вскоре обратился в бегство.
Отличительной чертой тактики Карла XII было глубокое презрение к полевой артиллерии. Практически все свои победы он одержал без участия артиллерии. Не стала исключением и Полтава. 28 пушек, то есть почти вся артиллерия шведов, пробыли все сражение в обозе, в то время как огонь русских пушек буквально косил шведов.
Впервые шведская артиллерия заговорила в полный голос, когда русская конница попыталась во второй половине дня 27 июня атаковать шведский обоз у местечка Пушкаревка. Первый же залп обратил конницу в бегство.