Однако растерянность, вызванная неожиданной переправой орды через Оку, уже прошла. Следом за татарским войском поспешил передовой полк воеводы Хворостинина, а за ним остальные полки. Передовой полк настиг татар у Молодей, в 45 верстах от Москвы, и разгромил их арьергард. Сыновья хана, командовавшие арьергардом, советовали хану: «К Москве идти не по што, московские люди побили нас здесь, а на Москве у них не без людей же!». Но хан не послушался и направил на помощь сыновьям 12-тысячный отряд, сам продолжая движение к Москве. Подоспевшая татарская конница обрушилась на немногочисленный передовой полк Хворостинина. Воевода начал отступление. Но татары рано торжествовали победу. Хворостинин вывел их под стены «гуляй-города», откуда на татарскую конницу обрушился град ядер и пуль. Потеряв много воинов, татары поспешно отошли. Девлет-Гирей, узнав об этом поражении, приостановил наступление на Москву. Имея в тылу у себя русскую армию, осаждать сильно укрепленный город было опасно. Целый день хан простоял на реке Пахре, в 30 верстах от Москвы, а затем двинулся к Молодям, где уже собрались все русские полки. Здесь и произошло решительное сражение.
Русские воеводы до подхода врага успели укрепить позицию, собрали на холме «гуляй-город», окружили его рвами. Здесь засел с пушками большой полк. Остальные полки встали с флангов и с тыла. Такое расположение русского войска было вполне оправданным. При тройном численном превосходстве татар без заранее подготовленных укреплений устоять было очень трудно. Как показали дальнейшие события, «гуляй-город» сыграл решающую роль в битве.
Основной удар хан наносил против центра русского войска, но большой полк, прикрываясь стенами «гуляй-города», отразил бешеный натиск татарской конницы пушечной и ружейной стрельбой. Другие русские полки фланговыми ударами помогали обороне. Целый день продолжалось сражение. Татары понесли большие потери, главнокомандующий татарской армии Дивей-мурза попал в плен. Крымский хан приостановил атаки, но поле боя не покинул. Отряды татарской конницы со всех сторон окружили «гуляй-город», за стенами которого укрылись поредевшие русские полки.
Через два дня, 2 августа, штурм «гуляй-города» возобновился. До вечера конные и пешие отряды татар безуспешно штурмовали деревянные стены, неся огромные потери. Русские пушкари и пищальщики стреляли метко. Целый день длилось упорное сражение. К вечеру, когда натиск татар начал ослабевать, русские полки устроили вылазку. Воевода Воротынский с полками незаметно вышел из «гуляй-города» и обошел татар с тыла, а оставшийся на месте Хворостинин после сокрушительного залпа из всех пушек напал на них в лоб. Татары не выдержали двойного удара и побежали. Потери врага были огромными. В битве погибли сын и внук Девлет-Гирея, много знатных крымских и ногайских мурз попало в плен. Русская конница преследовала врага до Оки, где был разбит еще один 5-тысячный татарский отряд. Поход крымского хана Девлет-Гирея на Москву на этот раз закончился полной неудачей.
Победа при Молодях имела огромное значение. Крымская орда была разбита в открытом бою, несмотря на тройное превосходство в силах. Вместе с поражением турок под Астраханью это была неудача турецко-крымского плана добиться господства в Причерноморье и оттеснить Россию с нижней и средней Волги. Но эти победы удались России ценой огромных усилий — война в Ливонии продолжалась. К тому же в 1572 г. Ивану IV пришлось посылать 5 полков «на казанских людей, на луговую и горную черемису», которые подняли восстание. Однако и после победы при Молодях Россия была вынуждена держать на южной границе большие силы. В 1573 г. на юге стояли 10 полков. В этом году крымские татары напали на рязанские места. Крымский наезд был непродолжительным. Получив известия о приближении русского большого полка из Серпухова, татары отступили. Другое русское войско ходило походом на Большую Ногайскую Орду. В 1574 г. снова крымцы и ногайцы воевали на рязанской «украине». Однако эти их вторжения не шли ни в какое сравнение с большими нашествиями крымского хана.