Между тем, к Москве приближались войска польского гетмана Ходкевича. Общая численность войск гетмана Ходкевича составляла около двенадцати тысяч человек, то есть не уступала всем силам ополчения. С армией гетмана шел и большой обоз с продовольствием и боеприпасами для кремлевского гарнизона. Но князь Пожарский знал, что гетман Ходкевич будет наступать от Новодевичьего монастыря по Смоленской дороге, и расположил основные силы своей армии непосредственно на пути польско-литовских войск.
Рано утром 22 августа 1612 года гетман Ходкевич со своим войском переправился через Москву-реку у Новодевичьего монастыря. Гетман хотел войти в город через Арбатские и Чертольские ворота, но встретил на своем пути «деревянный город» (переносные укрепления) Пожарского. Первый бой завязали конные сотни. Бой шел с первого по седьмой час дня. Гетман Ходкевич в поддержку кавалерии бросил в бой свою пехоту; левый фланг русской армии дрогнул, и войска Ходкевича пошли на общий приступ. В разгар боя польский кремлевский гарнизон предпринял попытку сделать вылазки со стороны Чертольских ворот, Алексеевской башни и Водяных ворот. Командиры гарнизона попытались отрезать часть сил Пожарского и уничтожить их, прижав к реке. Однако все попытки поляков провалились, несмотря на то, что со стен по русским велся огонь из артиллерии. В самый критический момент боя пять сотен ополченцев, которые были приданы к войскам Трубецкого князем Пожарским, и четыре казачьих атамана со своими отрядами самовольно отделились от Трубецкого и, форсировав реку, присоединились к Пожарскому. С помощью прибывшего подкрепления в тысячу человек натиск польско-литовских войск удалось остановить, и гетман Ходкевич отступил, понеся большие потери. 23 августа гетман занял Донской монастырь и начал подготовку к решающему сражению.
24 августа состоялось главное сражение этой войны. Ходкевич собирался нанести главный удар со своего левого фланга, который он сам и возглавил. В центре наступала венгерская пехота, польский полк Невяровского и казаки Зборовского. Правый фланг состоял из четырех тысяч запорожских казаков под командой атамана Ширая. Конные сотни Второго ополчения в течение пяти часов сдерживали наступление гетманской армии. Наконец они не выдержали и подались назад. Отступление конных сотен было беспорядочным, дворяне пытались вплавь перебраться на другой берег. Князь Пожарский лично покинул свой штаб и попытался остановить бегство. Сделать это, однако, не удалось, и вскоре вся конница ушла на другой берег Москвы-реки. Одновременно центру и правому флангу гетманской армии удалось оттеснить людей Трубецкого. Все поле перед Земляным городом осталось за гетманом. После этого начался штурм полуразрушенного Земляного города. Гетманская пехота выбила русских с валов. Продолжая развивать успех, венгерская пехота и казаки Зборовского захватили Климентьевский острог. В захвате острога участвовал и гарнизон Кремля, который сделал вылазку для поддержки наступления.
Казалось, Второе ополчение ждет судьба Первого. Но в этот момент казаки неожиданной контратакой выбили гетманские войска из острога, и наступила так необходимая для ополченцев передышка. Минин и Пожарский сумели привести войска в порядок. Удалось им договориться и о совместных действиях с казаками. К вечеру началось контрнаступление ополченцев. Козьма Минин, взяв с собой ротмистра Хмелевского и три дворянских сотни, переправился через Москву-реку и выступил в сторону Крымского двора. Литовская рота, стоявшая у двора, увидев противника, побежала к лагерю гетмана. Одновременно русская пехота и спешившиеся конники перешли в наступление на лагерь гетмана Ходкевича. Наступление велось широким фронтом и на табор гетмана, и на валы Земляного города, где также оборонялись гетманские войска. Вскоре гетманские войска отступали уже по всему фронту. Дело окончательно завершила мощная атака русской кавалерии. Победителям достались обоз, пленные, шатры, знамена и литавры. 25 августа остатки войск Ходкевича начали отход в направлении Польши.
Эта битва стала поворотным моментом Смуты. Поражение гетмана Ходкевича на подступах к Москве фактически предопределило падение польско-литовского гарнизона Кремля и Китай-города. 22 октября 1612 года Китай-город был взят русскими войсками приступом. Оставался гарнизон в Кремле, но он был обречен. В гарнизоне царил страшный голод, поляки не брезговали даже человечиной. Когда стало ясно, что помощи ждать неоткуда, поляки капитулировали. 26 октября 1612 года они открыли ворота Кремля и начали сдаваться русским войскам. А на следующий день торжествующее ополчение вошло в Кремль, Москва была освобождена.
Освобождение Москвы имело важнейшее значение для восстановления русской государственности. Страна, стоявшая на пороге гибели, одним огромным усилием сбросила с себя оковы Смуты. В феврале 1613 года созванный по призыву руководителей ополчения Земский собор избрал на царство Михаила Романова, кандидатура которого устраивала разные слои русского общества. Смутное время закончилось. Россия выстояла.