Старый казак узнал о предательстве младшего сына и обвинил во всём панночку. Началась битва с поляками, во время которой старший сын казака отличился и стал атаманом. Полякам пришлось отступить.
Сначала запорожцы не могли понять, каким образом польское войско беспрепятственно вошло в город. Потом выяснилось, что казаки куреня, охранявшего ворота, были мертвецки пьяны и спали, не выставив часовых. Поляки взяли в плен весь курень вместе с атаманом. Кошевой рассудил, что припасов, которые привезли с собой поляки, надолго не хватит, поэтому скоро начнётся битва, и велел готовиться.
Тарас искал Андрия, опасаясь, что тот попал в плен вместе с пьяными казаками. К нему подошёл Янкель, который успел побывать в Дубно и увидел там Андрия, одетого как польский рыцарь. Янкель узнал, что парень отрёкся от Родины ради дочки воеводы и собирается биться на стороне поляков. Свадьба Андрия и панночки состоится, как только прогонят запорожцев.
Коли человек влюбится, то он всё равно что подошва, которую, коли размочишь в воде, возьми согни — она и согнётся.
Андрий увидел Янкеля и попросил передать, что теперь отец ему — не отец, брат — не брат, и товарищи — не товарищи. Тарас вышел из себя и чуть не убил Янкеля, потом вспомнил, что прошлой ночью видел Андрия с женщиной, но ещё не хотел верить в предательство собственного сына. Старый казак понимал, «что велика власть слабой женщины, что многих сильных погубляла она, что податлива с этой стороны природа Андрия».
В городе услышали, что казаки зашевелились, и на городской вал вышли польские рыцари в шитых золотом одеждах. На стоящих перед валом казаках золота не было — запорожцы не любили наряжаться перед битвой. Польский полковник велел вывести на вал пленных запорожцев.
Разъярённые казаки начали переругиваться с поляками. Те выстрелили по ним из пушек, а затем польское войско вышло из городских ворот. Запорожцы ударили сразу со всех сторон, не дав полякам построиться и выстрелить.
Во время боя атаман куреня, в котором состоял Остап, польстился на богатые доспехи и наклонился, чтобы снять их. В этот момент польский офицер отрубил атаману голову. Остап ястребом налетел на офицера, накинул петлю ему на шею, связал и созвал всех казаков куреня, «чтобы шли отдать последнюю честь атаману».
Казаки стали совещаться, кого выбрать куренным атаманом, и большинство проголосовало за Остапа: хоть он был и младшим в курене, но «разум у него как у старого человека». Остап не стал отказываться и немедленно повёл курень в бой «и уж показал им всем, что недаром выбрали его в атаманы».
Битва продолжалась, пока поляки не поняли, что плохо им приходится, и не спрятались за стенами города. Кошевой атаман похвалил Остапа. Бульба оглянулся «поглядеть, какой там новый атаман», увидел во главе куреня своего сына, обрадовался и поблагодарил казаков за оказанную его сыну честь.
Перевязав раны и похоронив павших в битве, запорожцы разделились на курени, сели ужинать и рассказывать о своих подвигах. Тарас размышлял, почему Андрий не участвовал в этой битве. Старый казак во всём винил прекрасную панночку и мечтал уничтожить её.
И выполнил бы он свою клятву: не поглядел бы на её красоту, вытащил бы её за густую, пышную косу, поволок бы её за собою по всему полю, между всех казаков.
Но не знал Тарас, «что готовит бог человеку завтра» и, наконец, заснул.