Співвідношення сторін
У бою брали участь відділ південної групи УПА-Північ (Військова округа «Богун» під командою Петра Олійника-«Енея») та з'єднання УПА-Південь (під командуванням Василя Кука — «Леміша»). Загалом сили повстанців разом з місцевими селянами становили неповних 5 тис. бійців. Чисельність бойових відділів не перевищувала 3 — 3,5 тис. вояків у складі куренів «Сторчана», «Мамая», «Вира» або «Докса», «Непитайла», «Бувалого», «Довбенка», «Залізняка» і сотень «Панька», «Яструба», «Андрія», чоти «Чорногори» і відділу охорони штабу під командуванням «Гармаша». В арсеналі південної групи УПА було 2 батареї гармат різних систем і кілька мінометних ланок, окремі курені мали на озброєнні ПТР. Також до УПА приєдналося близько 500–1000 осіб з навколишніх сіл Гурби та Антонівці, що шукали захисту своїх сімей від більшовиків. Їх відправили вглиб лісу, доручивши їм допомагати пораненим та забирати їх з поля бою.
Проти повстанців НКВС кинуло 5 бригад солдатів і деякі частини Червоної Армії, авіацію, бронепоїзди, 15 легких танків, полк кінноти. Літаки використовувалися для розвідки, аби виявити більші скупчення підрозділів УПА. Разом їхня кількість становила близько 30 000 солдатів.
До бою під Гурбами між упівцями та НКВС-івцями відбулося невелике зіткнення біля села Москалівки, з якого повстанці вийшли переможцями.
Хід бою
20 квітня 1944 р. радянські сили згуртували більшу частину своїх військ на лінії Шепетівка — Рівне — Збараж. Уранці 21 квітня, вояки УПА почали рити шанці та вкопувати гармати. Було розгорнуто польовий шпиталь. Спираючись на дані розвідки, командування УПА віддало наказ, згідно з яким усі приготування мали бути завершені до 6.30 годин вечора 23 квітня.
Перша спроба радянських військ знищити повстанців відбулася 23 квітня. Найбільше військ радянське командування сконцентрувало в районі села Антонівці. Наступ також відбувався і з інших боків, але мобільні повстанські загони відступали, та наносили несподівані удари з флангів, внаслідок чого війська НКВС понесли значні втрати. Фланговими ударами військам НКВС вдалося потиснути фланги упівців, внаслідок чого повстанці опинилися у «мішку». З наказу командування УПА, війська повстанців перегрупувались наступним чином: в лісах, недалеко від с. Гурби, у с. Святе, Мощаниця, урочищах Чернява, Грабовець та Межові гори. Першу лінію оборони займали відділи командира «Мамая» (по лінії р. Понура — с. Замишівка), «Докса» (Мощаниця-Чернява-Святе), «Яструба», «Сторчана» та кілька інших загонів особливого призначення (лінія Святе-Мости-Грабовець-Гурби). Другу лінію оборони займали загони «Довбенка», «Бувалого» і «Непитайла». Резерв складали відділи командира «Панька», «Залізняка», «Чорногори» і «Андрія». Згідно зі звітами до повстанського штабу під час зіткнень 23 квітня, НКВС-івці втратили 250 осіб убитими, зокрема: під Антонівцями — біля 50 осіб, на лінії Кирилівка-Обгів — близько 80 осіб, на лінії Обгів-Ступно — 40 осіб, біля с. Москалівки — близько 30 осіб, в засідках — близько 50 осіб. Втрати повстанців склали 39 осіб вбитими та 30 пораненими. Окремо відзначалась перевага НКВС на всіх відтинках у солдатах та озброєнні.
В ніч з 23 на 24 квітня 1944 р. повстанці перегрупувались та окопались. Вночі війська НКВС спробували захопити позиції повстанців, попередньо провівши артобстріл, однак їхні спроби виявилися марними. Після короткої паузи, війська НКВС за допомогою танків організували другу атаку вже на усіх відтинках повстанчої оборони, однак і вона виявилась невдалою. Однак втрати понесли загони «УПА-Північ», зокрема курінь командира «Ясеня».
Нарешті, о 6 годині ранку 24 квітня командування НКВС вирішило розпочати генеральний наступ. На цей раз головні сили було спрямовано на північ від села Гурби. Після артилерійського обстрілу позицій УПА, о 12 годині НКВС-івці «стіною» рушили на повстанців. Також сильний наступ почався зі сторони сіл Мости та Хижаки.
Радянські війська змогли наблизитись до відділу командира «Мамая» на 300 м, однак їх було відкинуто. Через кілька годин, радянське командування віддає наказ про повторний наступ. На цей раз в бій кинуто кавалерію, яка мала зайти з флангів та вклинитись між куренями упівців, поки повстанці відбивали атаку радянських танків. Кавалерія виконала своє завдання, розбивши війська повстанців на дві частини. Однак командування УПА, вчасно використавши резервний курінь командира Залізняка, стабілізувало ситуацію, відкинувши кавалерію ворога. Після невдалої атаки кавалерією в бій вступила радянська піхота. Новомобілізовані бійці під командуванням командира «Яструба» не витримавши натиску, почали відступати, при цьому не маючи змоги повідомити бійців «Сторчана». Слід за «яструбцями» почали відступати й відділи «Залізняка», які були запасною лінією «сторчанівців». Внаслідок чого ворог прорвався на південний відтинок та оточив бійців «Сторчана». Курінний «Сторчан» зі своїм відділом був змушений вступити у нерівний рукопашний бій, внаслідок чого увесь повстанський курінь було знищено, загинули сам «Сторчан», четверо старшин та 60 повстанців.
Тим часом повстанцями було створено другу лінію оборони. Зі звіту про перебіг бою учасника бою начальника оперативного відділу — майора Миколи Свистуна («Ясеня»):
«Щоб забезпечити південну сторону, перекинув я сот. „Андрія“ з півн.-зах. сторони на південь, на Гурбенську Гору (год. 11), які геройськи держалися до 18 год., коли більшовикам удалося висунути їх танками зі свого становища. Тут оборонні становища скріпили к-р „Довбенко“, „Бувалий“, „Балабан“. В цей час, коли окружені „сторчанівці“ боролися, я підготовляв контрнаступ з півночі, що мав виконати курінний Доксу, але на зайняте командиром „Доксом“ становище не було кого дати. Своїх відділів не міг я зірвати зі становища, бо ворог наступав зі всіх сторін…».
Бій тривав на всіх відтинках оборони і тільки ввечері радянським військам удалося оточити понад 1,5 тис. повстанців у так званий «гурбенський котел» та захопити Гурбенську Гору.