Наприкінці весни 1649 р. поляки відновили наступ на Україну, порушивши умови перемир’я, яке було укладено взимку цього року в Переяславі. Польські війська перейшли річку Случ, що була демаркаційною лінією, і почали громити українські прикордонні залоги.
Під Старокостянтиновом усі шляхетські полки з’єдналися, щоб йти назустріч головним козацьким силам. Одночасно литовські війська рушили в напрямку на Київ. Знову розгорілася війна.
Хмельницький вважав, що настав її вирішальний етап. Він поставив за мету остаточно розгромити головні збройні сили Речі Посполитої, повалити панування Польщі в Україні й утвердити владу Української держави. Хмельницький провів широку мобілізацію. Пізніше він згадував, що у зборівському поході військо налічувало 360 тис. чоловік. Головний козацький табір стояв у Білій Церкві. Звідти український гетьман з армією вирушив на Волинь у напрямку на Старокостянтинів. Щоб відтягнути звідти частину польських військ, він наказав полковникові Данилові Нечаю вдарити на Меджибіж.
Польське командування кинуло на допомогу своїм значне військо, якому довелося вступити в запеклий бій з козаками. Але воно змогло тільки вивести з Межибозького замку польську залогу. Місто та фортеця перейшли до рук козаків.
Звістка про те, що Богдан Хмельницький з головними силами наближається до Старокостянтинова(16 червня 1649 р.), була цілковитою несподіванкою для польського командування й викликала розгубленість у нього й загальну паніку у війську. Окремі загони почали тихцем тікати. Польські региментарі вирішили відступати на Чолганський Камінь і далі до Збаража. «Цей наш відступ був рівнозначний утечі відзначалося в одному з тогочасних польських джерел.
17 козацьких полків рушили услід за польсько-шляхетським військом. Вони йшли широким фронтом: у голові колони — кіннота під командуванням брацлавського полковника Данила Нечая, далі — Богдан Хмельницький з головними силами, а замикав похід Миргородський полк на чолі з Матвієм Гладким. Татари йшли на флангах.
Польське військо зосередилося під Збаражем. Колись тут було укріплене місто Галицького князівства. У часи польського панування Збараж належав князям Збаразьким, а з 1631 року — князям Вишневецьким. Вони побудували добре укріплений замок. Високі вали, обмуровані тесаним каменем, мали форму квадрата, на них — кам’яні п’ятикутні бастіони, рови досягали 40 м завширшки. Посередині укріплення були великий майдан і каземати. Командувач Ярема Вишневецький, залишивши частину польського війська в замку, решті наказав стати під замком табором (до милі навкруг).
Укріплення польського табору не було закінчене, коли з’явилася козацька й татарська кіннота. Зав’язався бій. Польське військо зазнало значних втрат, полягло близько двох тисяч найманців з німецької піхоти.
Підійшли козацькі полки й заклали свій табір за чверть милі від польського, насипавши попереду шанці й встановивши гармати.
Увесь Збараж (разом із польським табором поза його стінами) було взято в щільну облогу. Козаки зайняли всі навколишні села, і обложені не мали змоги виходити за провізією і фуражем для коней. Облога велася з одночасним наступом. Козаки дедалі ближче пересували свої шанці до польського табору. Насипали високі вали, а тим часом підкопувалися під польські вали й вдиралися до ворожого табору, відтиснули його під стіни замку.
З високих козацьких валів було видно весь польський табір. Козацькі гармати обстрілювали ворожі позиції.
Під час запеклих боїв під Збаражем козаки також зазнали значних втрат. Було поранено вінницького полковника Івана Богуна, смертю хоробрих поліг корсунський полковник Станіслав Морозенко.
27 липня після гарматного обстрілу польських шанців козаки пішли в генеральний наступ. Попереду рухалися «гуляй-городи» — вежі на колесах, на кожній з яких було по 15 козаків, за ними на кожному з возів ще по 20 вояків. Тримали напоготові штурмові драбини. Першу атаку поляки відбили. Однак козацька лава вдруге вирушила на штурм валу.
Бій тривав три години. Після цього масовий наступ припинився.
Відбувалися лише невеликі сутички. Окремі козаки підповзали під ворожий табір, обстрілювали сторожу, гаками стягали у рів вози, що стояли на валах, кидали у табір мазниці із запаленою смолою, щоб викликати пожежу, підкопувалися під шанці.
До Хмельницького надійшла звістка, що з Варшави вирушило головне польське військо на чолі з новим королем Яном-Казимиром і через Люблін, Замостя, Сокаль, Золочів прямує на допомогу Збаражу. Королю нічого не було відомо про становище в Збаражі.
Як завжди, дуже чітко діяли розвідка й контррозвідка в Богдановому війську. Український гетьман утримував сувору дисципліну у величезному війську, вмів приховувати свої плани і дії від ворога, а про плани та пересування противника завжди своєчасно довідувався. На розвідку посилав тільки довірених і досвідчених старшин та козаків.
Забравши основну частину свого війська з-під Збаража, Хмельницький вирушив з нею назустріч королю. Командування над тими козаками, що залишалися під Збаражем, було доручено генеральному обозному Івану Чорноті. Йому було наказано поводитися так, щоб ворог не здогадався про відхід головних українських військ.
Польське військо рухалося до містечка Зборова. Це стародавнє українське місто розташоване на горбі. Його захищали і природні, і збудовані укріплення. У Зборові були викопані й підземні муровані переходи.
До цього досить значного оборонного пункту наблизився 5 серпня король Ян-Казимир з головними силами. Польське військо, просуваючись уздовж річки Стрипи, розтягнулося довгою лінією вздовж сіл Метенова, Грабківці, Млинівці. Просувалися дуже повільно через тривалі дощі. Дороги перетворились у багнюку. Коли передові сили вже переправлялися через Стрипу, щоб вступити до Зборова, головний табір стояв під Млинівцями, а задні сторожі були ще під Метеновом. Переправа затрималася. Обозних возів нагромадилося стільки, що не можна було рушити ні вперед, ні назад. Річка розлилася, міст зірвало. Інженери зробили три помости для переходу війська. Послані на розвідку загони легкої кінноти не помітили жодних слідів козаків чи татар.
Хмельницький вирішив використати ситуацію й атакувати ворога. Як розповідає польський історик Коховський, український гетьман сам виїздив на розвідку під Зборів. Він виліз на високого дуба, роздивився звідти, як поляки переправляються через річку, підрахував їхні сили, оглянув поле майбутньої битви. Тільки тоді українська і татарська кіннота рушила під Зборів.
Військові дії розпочалися 5 серпня несподіваною для поляків атакою кінних козацьких і татарських загонів. Вони переправилися через річку і вдарили з тилу і флангів на королівські полки, які перебували на марші між селами Метеновом і Млинівці, на північ від Зборова. Заскочені зненацька поляки заметушилися, безладно пішли в бій.
Почалася паніка. Розтягнувшись на вузькій і болотистій дорозі, польські полки не мали можливості допомагати один одному. Отже, не тільки окремі частини, а все польське тилове військо потрапило, як у пастку, в кільце оточення козацької і татарської кінноти. Втрати поляків перевищили 4 тис. вояків. Загинули головний обозний королівської армії, начальник її піхоти та інші вищі офіцери.
«Не битва це була, а скоріше різня,- писав очевидець,- перший цвіт польської шляхти був стертий рукою ворога». Половина обозу з різноманітними запасами дісталася татарам.
Тим часом кіннота Богдана Хмельницького атакувала передову частину польських військ, те перебував король Ян-Казимир, саме тоді, коли вони переходили на східний берег річки
Стрипи й вступали в містечко Зборів. Козацькі й татарські кіннотники наступали з фронту і з флангів.
За наказом короля в передмісті Зборова Куклинцях було побудовано оборонний табір з обозних возів. У середині великого чотирикутника змогло вміститися все військо. Довкола возів насипали вали.
У Зборові король залишив залогу з 1500 вояків, до яких приєдналося пізніше 400 драгунів. Там же розмістилася обозна челядь. Польська залога обстрілювала татарських кіннотників, що наступали. Під захистом масованого гарматного і рушничного обстрілу поляки перейшли в контратаку. Але Богданові кіннотники накочувалися знову і знову, тиснучи на центр і фланги ворога.
Король вислав резерви. З ранку до вечора точилися бої з перемінним успіхом і втратами з обох сторін. Нарешті поляки не витримали і притихли в оборонному таборі.
Уночі з 5 на 6 серпня Хмельницький перегрупував частини і оточив польський табір та містечко Зборів.
Зранку 6 серпня розпочався третій етап Зборівської битви, в якому головну роль відіграла козацька піхота. Польське військо вже не виходило зі свого табору. В руках поляків була і переправа, завдяки чому вони мали зв’язок із залогою у Зборові.
Козацькі полки одночасно штурмували Зборів і греблю та мости на Стрипі, щоб розірвати сполучення між Зборовом і королівським табором. Керував цією операцією брацлавський полковник Данило Нечай, при ньому був і миргородський полковник Матвій Гладкий. У боях за переправу козаки були в дуже незручному становищі, між двох вогнів: з міста їх обстрілювала залога і водночас сунули війська з польського табору. Кілька разів відкидав їх ворог від греблі. Але вони уперто відновлювали штурм і нарешті здобули її.
Місто козаки атакували з південного заходу, де були міська брама і церква Різдва. Сюди вони підвезли гармати, насипали шанці й вели безперервний прицільний вогонь.
Перший наступ польські драгуни за допомогою челяді відбили. Але козаки продовжували атакувати вали й частокіл, за яким оборонялися драгуни.
За свідченням польського учасника боїв під Зборовом, козаки «наосліп дерлися на вали і паркани». Тоді їм на поміч прийшли зборівські міщани, які вказали місце, де оборона була найслабшою. Сотні Миргородського полку під проводом Матвія Гладкого вдерлися поміж частоколом на вал, увірвалися до міста і взяли його.
Зайнявши Зборів, Богдан Хмельницький оточив уже окремо королівський табір. Оточення було настільки щільне, що польська кіннота не мала доступу ні до паші для коней, ні до води. Український історик Іван Крип’якевич, який глибоко проаналізував і докладно описав Зборівську битву, а також дослідив поле битви, зробив висновок, що «повне оточення королівських військ на вузькому просторі за дуже короткий час — це надзвичайний стратегічний успіх Хмельницького». Іван Крип’якевич також підкреслює, що організація узгоджених дій артилерії і піхоти в наступальних боях проти королівського табору свідчить про високий рівень військового мистецтва українського гетьмана, характеризує його як «великого полководця»
За наказом Богдана Хмельницького на зборівських валах, на панівних висотах було поставлено запорозьку артилерію, і вона планомірно зблизька обстрілювала ворожий табір. Найбільшої шкоди завдавали гармати, встановлені на дзвіниці церкви Різдва, що стояла на східній частині валів.
Польський офіцер записав таке: «Ворог із цієї церкви дуже тяжко наш обоз нагрівав. Татари, які мали свій Кіш під Озерною, безперервно набігали на козацький табір зі сходу. Головний наступ повела козацька піхота з півночі. Під заслоною пригородних Куклиницьких садів своїми гарматами обстріляли польські шанці». Поляк-очевидець оповідає: «Між садами ховалися і наших дуже з гармат псували».
Потім козацька піхота пішла широким фронтом на вали, «добиралася до окопів», завзято їх штурмувала. У тому місці, де польський окоп не був докінчений, козаки майже підійшли до табору.
Польський король особисто організовував оборону. На другу добу облоги, вночі, поширилися чутки, що він покинув табір. Окремі польські загони й челядь кинулися тікати. Ян-Казимир цілу ніч їздив по табору при світлі смолоскипів, щоб заспокоїти військо, а також пішки ходив по табору й палашем виганяв з-під возів шляхту, яка ховалася там, щоб не потрапити до загонів, яких відправляли на вилазку.
Отже, обложене польське військо опинилося в безнадійному становищі. Польща по суті була поставлена на межу катастрофи: Хмельницький міг диктувати свої умови королю й добитися вигідного миру.
Однак кримський хан Іслам-Гірей зрадив гетьмана й переметнувся на бік Польщі. Хмельницький змушений був припинити війну й почати переговори з королем — інакше татари виступили б проти нього. Таким чином, татари перешкодили українському гетьману здійснити намір — розгромити збройні сили Польщі й остаточно визволити Україну від іноземного панування.
8 серпня 1649 р. (за старим стилем) було підписано Зборівську угоду, згідно з якою тільки в трьох воєводствах — Брацлавському, Київському і Чернігівському — встановлювалася влада Української Козацької держави на чолі з гетьманом, а чисельність українських збройних сил обмежувалася 40 тисячами козаків, для чого складався спеціальний реєстр.