В конце 1647 года чигиринский сотник Зиновий Богдан Хмельницкий, из мелкопоместной украинской шляхты, испытавший немало притеснений от поляков (один шляхтич убил его сына, разорил хутор и похитил жену), бежал в низовья Днепра, где, собрав отряд беглых казаков, напал на польскую крепость Кодак, запиравшую выход из Сечи, и захватил ее. После этого успеха Запорожская Сечь избрала Хмельницкого своим гетманом. Он обратился с воззванием к населению Украины: «Никогда вы не найдете возможности свергнуть польское господство, если теперь не сбросите целиком иго польских чиновников и не добудете свободы, той свободы, которую наши отцы купили своей кровью… нет иного способа, кроме как победить врага силой…» Хмельницкому удалось заключить союз с крымским ханом. Польское командование недооценило серьезность ситуации. Коронный гетман Николай Потоцкий считал, что у Хмельницкого лишь 2 тысячи казаков и не более 500 татар перекопского мурзы Тугай-бея. В действительности же у Хмельницкого было до 8 тысяч запорожцев и примерно столько же татар. На Запорожье в апреле 1648 года двинулся польский отряд в 5–6 тысяч человек во главе с сыном гетмана Потоцкого Стефаном. Параллельно ему по Днепру на лодках плыл отряд реестровых казаков полковника Барабаша в 4–6 тысяч человек, усиленный несколькими сотнями немецких ландскнехтов. Запорожцы ждали противника у Желтых Вод – притока реки Ингулец. 3 мая реестровые казаки убили Барабаша, истребили немецких пехотинцев и присоединились к Хмельницкому. Польский же отряд устроил укрепленный лагерь на правом берегу Желтых Вод. Казаки Хмельницкого осадили лагерь и 6 мая несколько раз атаковали его, но взять не смогли. В ходе боя молодого Потоцкого оставили драгуны, перешедшие на сторону неприятеля. Поляки вынуждены были вступить в переговоры, чтобы договориться об отходе. Хмельницкий умышленно затянул переговоры на сутки, чтобы татары успели перерезать путь отступления войску младшего Потоцкого. Запорожский гетман согласился пропустить поляков при условии, что они сдадут казакам свою артиллерию. Татары, формально не участвовавшие в переговорах, напали на поляков при отступлении, причем казаки снабдили Тугай-бея трофейными пушками. Польские солдаты были частью уничтожены, частью пленены, а их командир погиб.
После победы у Желтых Вод казацко-татарская армия пошла на Корсунь, где располагались главные силы коронного гетмана Потоцкого и польного (полевого) гетмана Калиновского. По пути на сторону Хмельницкого перешел отряд из 3 тысяч драгун, в основном состоявший из украинцев. Польские войска почти вдвое уступали противнику в численности и были сильно деморализованы изменой реестровых казаков и украинских драгун. Потоцкий, вопреки мнению Калиновского, приказал отходить. Однако пути отхода перехватил 6-тысячный отряд запорожского полковника Максима Кривоноса. 16 мая поляки были разгромлены. Большая часть войска во главе с гетманами попала в плен. Лишь немногим больше 1 тысячи польских солдат добрались до Киева.