Весной 1649 года король объявил новое посполитое рушение. Войско собиралось в Люблине. Вишневецкий сосредоточил свою 12-тысячную армию в Збаражском замке, имевшем 60 орудий. Хмельницкий собрал у Чигирина 30 казачьих полков численностью до 30 тысяч человек. На помощь ему пришли татары во главе с ханом Ислам-Гиреем. Казацко-татарская армия, насчитывавшая до 50 тысяч бойцов, 1 марта двинулась к Збаражу. 25 марта перед замком произошел бой с войском Вишневецкого. Казачий полк Бурляя вместе с татарами опрокинул немецкую пехоту и ворвался в неприятельский обоз. Однако Вишневецкий бросил против казаков Бурляя гусарскую хоругвь, которая оттеснила их к пруду и почти всех уничтожила. На помощь Бурляю устремился полк Морозенко, но поляки отразили эту атаку, а полковник Морозенко был убит. К вечеру армия Вишневецкого отступила в Збараж.
Осада замка продолжалась два месяца. Осажденные отбили несколько приступов. Тем временем к Збаражу подходило 30-тысячное войско Яна Казимира. Узнав об этом, Хмельницкий в конце июля предпринял общий штурм под прикрытием гуляй-городов. Однако люди Вишневецкого сделали вылазку и сожгли гуляй-города, вынудив казаков отступить.
Оставив у Збаража небольшой блокирующий отряд, Хмельницкий выступил с главными силами навстречу польскому королю. Они встретились недалеко от Зборова на реке Стрыпе. С учетом потерь, понесенных у Збаража, и оставленного у замка отряда, Хмельницкий имел лишь небольшой численный перевес. С утра 5 августа польское войско стало переправляться через реку по двум мостам. Хмельницкий поочередно атаковал оба отряда польского войска, успевшие переправиться на правый берег, и уничтожил их. Затем в бой вступили главные силы. Казакам и татарам удалось опрокинуть левое крыло неприятеля, где стояла шляхетская конница из собственно польских земель. Король бросил ей на помощь рейтарскую конницу. Одновременно правое крыло, состоявшее из польской шляхты Брацлавского и Подольского воеводств, перешло в контратаку. В результате наступление украинского войска было остановлено. Поляки смогли укрыться в обозе и обнести его шанцами.
Утром 6 августа казаки атаковали польский лагерь с фронта, а татары — с тыла. Одновременно несколько казачьих сотен ворвались в Зборов, занятый слабым польским гарнизоном. Однако накануне вечером Ян Казимир направил письмо крымскому хану, где предлагал ему любые уступки в обмен на прекращение татарами боевых действий. В разгар штурма польского лагеря хан потребовал от Хмельницкого прекратить наступление и пойти на переговоры.
22 августа между Украиной и Польшей был заключен Зборовский мирный договор. Число реестровых казаков по этому договору увеличивалось до 40 тысяч (столько их фактически и было в армии Хмельницкого). Король обязался платить им жалованье и снабжать оружием. Основные воеводства Украины, Киевское, Брацлавское и Черниговское, должны были иметь православных воевод, и на них распространялась власть гетмана. Польские войска не должны были оставаться на Украине. Произошел размен пленных, в результате чего в Польшу вернулись гетманы Потоцкий и Калиновский.
Сейм в Варшаве Зборовский договор не утвердил, посчитав чрезмерными сделанные Хмельницкому уступки, и война возобновилась. В 1650 году Хмельницкий совместно с татарами совершил поход в Молдавское княжество и на некоторое время подчинил его своему влиянию. 4 тысячи казаков вторглись в Литву и с помощью местных повстанцев сковали значительную часть литовских войск.
Поляки пока что активных боевых действий на Украине не вели, собираясь с силами. В ноябре 1650 года сейм принял решение увеличить численность польского коронного войска до 36 тысяч человек, а литовского войска — до 18 тысяч. Фактическая численность польско-литовской армии была еще больше, так как многие магнаты (Вишневецкие, Любомирские, Радзивиллы и др.) имели частные армии по несколько тысяч человек.
В феврале 1651 года польский отряд вторгся в Подолию и разбил казачий полк Данилы Нечая (сам Нечай погиб). В ответ Хмельницкий с главными силами и вместе с союзниками-татарами вторгся на Волынь. Он выпустил универсал (манифест) к польским крестьянам, призывая их восстать против шляхты. Гетман рассчитывал сокрушить Речь Посполитую и посадить на трон в Варшаве своего ставленника. Ян Казимир выступил против Хмельницкого с 50-тысячной армией. Украинско-татарское войско насчитывало около 70 тысяч человек. В июне 1651 года обе армии сошлись под Берестечком.