Еще раньше к Москве были посланы два передовых конных отряда, общей численностью примерно в тысячу сто человек. Они заняли позиции между Тверскими и Петровскими и между Петровскими и Никитскими воротами, прикрыв дорогу на Смоленск, по которой ждали подхода гетмана Ходкевича. Серьезной военной силы эти отряды собой не представляли, но неожиданные маневры гетмана Ходкевича были предупреждены: обойти заставы Дмитрия Пожарского он никак не мог. Почти в полной блокаде оказались засевшие в Кремле Струсь и Будила — по другую сторону Москвы стояли казаки Трубецкого.
14 августа главные силы разбили лагерь под стенами Троице-Сергиева монастыря. Здесь Дмитрий Пожарский простоял четыре дня, выжидая. Часть казаков из лагеря Трубецкого уже перешла на сторону ополчения (например, атаман Кручина Внуков «с товарищами»), но сам Дмитрий Трубецкой выжидал, не соглашаясь на переговоры с вождями земского ополчения. Однако дольше медлить было нельзя, передовые воеводы Дмитриев и Лопата-Пожарский доносили о приближении гетмана Ходкевича. К Москве был немедленно послан отряд князя Василия Туренина, получивший приказ укрепиться у Чертольских ворот. Вся крепостная стена, прикрывавшая Москву с запада, была теперь занята русскими войсками. Воеводы Дмитриев, Лопата-Пожарский и Туренин насчитывали немного ратников, но продержаться до подхода главных, сил и связать противника боем они могли. Надеялся Дмитрий Пожарский и на помощь казацких «таборов», которые князь Трубецкой навряд ли сумеет удержать в своих лагерях, если под Москвой начнутся бои. Как показали дальнейшие события, воевода не ошибся.
18 августа 1612 года воевода Дмитрий Пожарский и Кузьма Минин выступили из лагеря под Троице-Сергиевым монастырем и 20 августа достигли предместий Москвы. Они остановились в районе Арбатских ворот, прикрывая Москву с запада. У Яузских ворот стоял со своими казаками князь Трубецкой. Теперь он сам попытался договориться с вождями ополчения, даже выехал им навстречу в сопровождении бояр. Но сразу стало ясно, что высокомерный князь претендует на главенствующую роль в земском ополчении — он был, по тогдашнему местническому счету, старшим по чину и знатности. Переговоры закончились безрезультатно. Князь Трубецкой вернулся в свой лагерь, а Пожарский начал укрепляться на Арбате. Острожки верно служили ему и Скопину-Шуйскому в прошлых боях, надеялся на них воевода и сейчас. Позиция князя Трубецкого по-прежнему оставалась неясной, а своих сил у Пожарского не хватало: к Москве успело подойти не более одной трети ополчения. Силы князя Трубецкого тоже были незначительными, немалую часть казаков атаман Заруцкий увел в Калугу.
По подсчетам военных историков, у воеводы Дмитрия Пожарского в передовых отрядах было примерно тысяча сто всадников, наряд с пушкарями (численность неизвестна), около тысячи стрельцов полторы тысячи казаков, до трех тысяч дворян и «детей боярских» и пеших ополченцев — всего не более десяти тысяч человек. В то время как у гетмана Ходкевича, который 21 августа подошел к Поклонной горе, было не менее двенадцати тысяч солдат, да в польском гарнизоне Кремля и Китай-города еще оставалось не менее трех тысяч. Превосходство интервентов было, таким образом, почти двойное. Сократить его могли казаки князя Трубецкого (примерно две с половиной тысячи человек), но как они поведут себя и успеют ли подоспеть новые отряды земского ополчения — было неясно. Бой предстоял для ополчения очень трудный, недаром Будила прислал в русский лагерь высокомерную грамоту со словами: «Лучше ты, Пожарский, отпусти к сохам своих людей!»
Но русские ратники поклялись «стояти под Москвою и страдати всем и битись до смерти». Свою воинскую клятву ополченцы князя Дмитрия Пожарского и «гражданина» Кузьмы Минина выполнили.
Опытный воевода верно определил главное направление удара гетмана Ходкевича: со стороны Смоленской дороги, к Чертольским (Кропоткинским) и Арбатским воротам. Форсировать Москву-реку перед Арбатскими воротами полякам было неудобно, поэтому воевода решил, что они сделают это где-то в районе Лужников, чтобы по ровному месту, мимо Новодевичьего монастыря, прикрывшись от фланговых ударов излучиной реки, двинуться прямо на Чертолье. Свою отборную конницу Дмитрий Пожарский заблаговременно выдвинул к Новодевичьему монастырю, пехота заняла укрепления. Воеводе удалось уговорить упрямого князя Трубецкого придвинуться к Крымскому мосту, чтобы не пропустить по нему поляков в Замоскворечье. Не очень-то надеясь на казаков, воевода послал туда пять сотен ополченцев.
Казалось, все предусмотрено. Оставалось одно — стоять крепко…
Сражение началось рано утром 22 августа 1612 года. Конница гетмана Ходкевича быстро переправилась через реку возле Новодевичьего монастыря и атаковала конницу Дмитрия Пожарского на Девичьем поле. Дворяне и «дети боярские» не выдержали натиска тяжелых гусарских хоругвей, вооруженных длинными копьями, и после семичасовой упорной сечи начали отступать к Чертольским воротам.
Но польские полковники и ротмистры рано торжествовали победу. Из-за острожков их встретили «огненным боем» русские пехотинцы и пушкари. Смешались и отхлынули гусарские хоругви. На смену им выступила вперед наемная немецкая пехота (у гетмана Ходкевича пехотинцев было не менее полутора тысяч!). Авраамий Палицын писал об этом этапе сражения: «И сперва литовские конные роты русских людей потеснили, потом же многими пешими людьми приходили на станы приступом».
Воевода Дмитрий Пожарский усилил своих пешцев спешенными дворянами и «детьми боярскими». Упорные схватки разгорались на валах Земляного города.
Польские солдаты из Кремля и Китай-города пытались помочь гибнущим на валах пехотинцам, устроили вылазку в тыл оборонявшимся, но были отбиты. Вылазка не удалась.
Позорную роль сыграл в тот страшный день князь Трубецкой. Пока сражались ополченцы Дмитрия Пожарского, он в бездействии стоял у Крымского моста. И не просто стоял, но и удерживал на месте не только своих казаков, но и пять сотен всадников, присланных Пожарским!
Первыми не выдержали пятьсот дворянских всадников. Вопреки приказам князя они переправились через Москву-реку и ударили во фланг полякам. Увлеченные, их атакующим порывом, перешли реку и четыре сотни казаков. Неожиданный удар тысячного отряда свежей конницы ошеломил интервентов, они начали отступать. И отступали до самой Поклонной горы, где гетман Ходкевич остановил, наконец, свое потрепанное воинство.
23 августа гетман Ходкевич перевел свое войско в Донской монастырь, намереваясь прорваться к Кремлю через Замоскворечье. Здесь у русских не было сильных укрепленных позиций, стены Деревянного города уже сгорели до основания. Теперь настал черед князя Трубецкого: вся армия гетмана Ходкевича была против него. Но Дмитрий Пожарский срочно направил туда подкрепления. Как ни велико было негодование предательским бездействием князя во вчерашнем бою, все таки сражались они с общим врагом…
Полки Лопаты-Пожарского и Туренина перешли в Замоскворечье, заняли позиции на остатках Земляного города. Большими силами перерезал Дмитрий Пожарский и брод напротив Остоженки, чтобы гетман Ходкевич не мог прорваться через него в Чертолье. По этому броду сам же Пожарский мог посылать помощь в Замоскворечье. Конница князя подъезжала к самому польскому лагерю в Донском монастыре и отступила обратно через брод только после жестокого боя.
Действия князя Трубецкого были менее успешными.
24 августа интервенты прорвались через линию Земляного города и погнали казаков дальше по Ордынке. Ожесточенный бой разгорелся в Климентовском острожке, который несколько раз переходил из рук в руки.
Обстановка была очень сложная. Обе стороны понесли огромные потери. Войска оказались разбросанными среди развалин Замоскворечья, отдельные очаги сопротивления оказались изолированными. В конце концов интервенты захватили Климентовский острожек, и гетман уже двинул к Кремлю обоз с продовольствием — четыреста тяжело нагруженных возов. Но отступившие из острожка казаки обстреляли обоз из пищалей, а затем неожиданной атакой выбили противника. Почти весь полк отборной венгерской пехоты, занявший было острог, погиб, в живых осталось около семисот солдат. Таких тяжелых потерь гетман Ходкевич не ожидал. Дмитрий Пожарский послал к Климентовскому острожку своих дворян, и те увидели «литовских людей множество побитых и казаков с оружием стоящих». Больше Ходкевич к острожку не приступал.
Сражение словно замерло: ни та, ни другая сторона не предпринимала активных действий. Ходкевич приказал привести роты в порядок, накормить солдат. Русские ратники не пропустили поляков в Кремль, но это не была еще победа. Требовалось смелое полководческое решение, чтобы завершить баталию. И князь Дмитрий Пожарский принял такое решение!
Загудели колокола московских церквей. На колокольный звон собирались казаки, разбирались по сотням. Посланцы Дмитрия Пожарского, среди которых был Авраамий Палицын, призывали их постоять за землю Русскую. Кузьма Минин собрал отступившие сотни ополченцев, ставил их против «крымского двора», где засела литовская рота, «конная да пешая». Спешенная дворянская конница собиралась по приказу Дмитрия Пожарского в садах у берега Москвы-реки.
Автор Нового летописца утверждал, что контрнаступление началось по инициативе Кузьмы Минина и что именно ему принадлежит основная заслуга разгрома гетмана Ходкевича: «Дню же бывшу близко к вечеру, приде бо Кузьма Минин ко князю Дмитрею Михайловичу и просяще у него людей. Князь же Дмитрий же глаголаша: „Емли, ково хощеши!“» Минин с тремя сотнями конных воинов внезапно ударил на роту, стоявшую у Крымского двора, смял ее и погнал к польскому лагерю. Конечно, это был героический эпизод, прославивший земского старосту, но он стал всего лишь началом общего наступления.
Почти одновременно по интервентам ударили главные силы Дмитрия Пожарского из «государевых садов», а на правый фланг — казаки из «таборов» князя Трубецкого. Будила отмечал впоследствии: «Русские всею силою стали налегать на табор гетмана». Только во время преследования отступавших интервентов отрядами дворян и «детей боярских» было перебито не менее пятисот человек. Потери гетмана Ходкевича стали невосполнимыми, и он спешно отошел к Донскому монастырю, а оттуда — на Воробьевы горы.