Будущей театр военных действий в районе Брунете представлял собой выжженную солнцем равнину, практически лишенную растительности. Фронт мятежников здесь не имел сплошной линии, а состоял из отдельных опорных пунктов, в каждом из которых занимали круговую оборону 1–2 батальона.
Вечером 5 июля 1937 года перед войсками с напутствием выступили Прието, Рохо и Долорес Ибаррури, и ночью того же дня 11-я дивизия Листера скрытно просочилась сквозь боевые порядки мятежников. Когда утром 6 июля после артподготовки и авиаударов в атаку пошел 18-й корпус, бойцы Листера уже были в 16 километрах от линии фронта и внезапным ударом взяли Брунете. Части противостоявшей республиканцам 71-й дивизии (состояла в основном из фалангистов и 1000 марокканцев) были захвачены врасплох, но быстро пришли в себя. Только в ночь с 6 на 7 июля 18-й корпус смог взять деревню Вильянуева-де-ла-Каньяда. Но при этом большие потери понесла XIII-я интербригада. Досталось и танкам, по которым били две замаскированные в церкви немецкие противотанковые пушки. Республиканцы потеряли более десяти Т-26.
Дни 6 и 7 июля были решающими. Вместо того, чтобы согласно приказу стремительно двигаться на юг, республиканские командиры все же решили уничтожить оставшиеся у них в тылу опорные пункты мятежников в деревнях Вильянуэва-дель-Пардильо и Кихорна, которые располагались на флангах республиканского прорыва. Но эти деревни были сильно укреплены, и командованию пришлось раньше времени ввести в бой все резервы.
Однако и Франко был крайне обеспокоен наступлением республиканцев. Его еще никогда не видели таким удрученным («Они развалили мой Мадридский фронт»). Запланированное на 9 июля продолжение наступления на Севере было отложено, и вся германо-итальянская авиация была переброшена оттуда под Брунете. Уже в первый день республиканского прорыва мятежники оперативно стали направлять на угрожающее направление резервы. С севера прибыли две наваррские бригады, 150-я и 108-я дивизии из Галисии, уже готовившиеся нанести удар по Астурии.
Между тем наступавшие войска республиканцев 7 июля повернули вместо юга на восток (в направлении Мадрида) и форсировали реку Гуадаррама. Но преодолеть высоту Москито и занять местечко Романильос не удалось, так как в бой уже вступили франкистские резервы. На следующий день верховное командование республиканцев (его формально осуществлял Миаха, но на деле все было в руках Рохо) приказало не отвлекаться на восток, а продолжать движение в южном направлении. В это же время началось наступление 2-го корпуса к югу от Мадрида. Оно развивалось успешно, и республиканцы быстро перерезали Толедское шоссе. Однако в этом корпусе было много едва обученных новобранцев и к концу дня, увидев, что не подошли подкрепления, они самовольно вернулись в тыл. Возникла трудно объяснимая паника, и 2-й корпус оказался на своих первоначальных позициях.
А в тылу основной ударной группировки еще держалась Кихорна, атакуемая двумя дивизиями республиканцев. Листер продолжал наступление на юг, но франкисты уже начали переходить в контратаки. Обе стороны несли огромные потери. Господство в воздухе перешло к мятежникам, которые активно применили в Брунетском сражении немецкие истребители Ме-109. Там впервые столкнулись в испанском небе опытные советские и немецкие пилоты на самых современных в своих странах истребителях
Первые две эскадрильи «месссершмиттов» прибыли под Брунете с Северного фронта еще 7 июля. А уже 12 июля «мессеры» записали на свой счет шесть сбитых самолетов, в том числе три И-16 и один СБ. «Мессершмитты» превосходили И-16 (хотя «муха» практически не уступала «мессерам» первых серий) и И-15 в скорости на горизонталях, но советские самолеты были маневреннее. К тому же на советских пилотов новые немецкие истребители вовсе не нагоняли никакого ужаса. 13 и 18 июля были сбиты по одному «мессершмитту». Бои шли на равных, советские летчики не уклонялись от единоборства и немцам пришлось менять тактику. Они стремились охотиться за тихоходными штурмовиками R-Z, и только в один из дней Брунетской битвы их жертвами стали 9 машин этого типа. В противоборстве с И-16 «мессеры» внезапно атаковали с большой высоты (6000–7000 метров) и обычно сразу же выходили из боя, если не имели численного превосходства. Немецкие и советские истребители делали по 4 боевых вылета в день, но численное превосходство германо-итальянской авиации сказывалось все сильнее, и к концу сражения господство в воздухе перешло к мятежникам. Легион «Кондор» бросал в бой смешанные авиагруппы с мощным истребительным сопровождением. Бомбежки шли и ночью, причем почти безнаказанно, так как республиканские самолеты не были оборудованы для ночных боев. На свой страх и риск советский летчик Анатолий Серов (будущий муж известнейшей киноактрисы Валентины Серовой) создал группу ночных истребителей И-15, которая сбила несколько «юнкерсов». Всего Серов провел в Испании 40 воздушных боев и сбил 8 самолетов лично и 7- в группе. Под Брунете взошла звезда лучшего аса военно-воздушных сил СССР Ивана Федорова («Хуана»), который за всю свою жизнь сбил в различных войнах 49 самолетов лично и 47 — в группе. В июле 1937 года Федоров совершил 25 боевых вылетов и однажды вернулся с 96 пробоинами. За время пребывания в Испании Федоров уничтожил 24 самолета, став одним из лучших асов ВВС республики.
Между тем на земле части интербригад после чудовищных потерь, действуя в ближнем бою штыками и гранатами, 9 июля взяли, наконец, Кихорну. 10–13 июля продолжались атаки с использованием уже всех имевшихся резервов, но успеха они не приносили. Между интербригадами возникли конфликты: командиры некоторых частей считали, что их умышленно бросают в безнадежные атаки. Включенные в интербригады испанские новобранцы стали дезертировать, а иногда и переходить на сторону противника, оставляя записки о своем нежелании воевать под командованием иностранцев. Одна группа перебежчиков даже увела с собой поляка, чтобы выдать его франкистам за русского и заслужить вознаграждение. Некоторые бойцы умышленно наносили себе легкие ранения, чтобы быть отправленными в тыл. К 11 июля 1-я бронетанковая бригада Народной армии даже с учетом брошенного в бой резервного батальона состояла только из 38 танков, которые поддерживали уже лишь один 5-й корпус.
13 июля, вымотавшись окончательно, республиканские части начали окапываться. Каждой бригаде были заранее выделены 1–2 роты саперов, которые стали рыть окопы и натягивать колючую проволоку. Но авиация мятежников не давала вести работы днем и к началу контрнаступления франкистов оборонительные рубежи не были закончены. XIII-я интербригада, боровшаяся на восточном берегу Гуадаррамы, попросила отвода в тыл, так как дальнейшие бои грозили ей полным уничтожением. Но командование было непреклонным.
Всего в ходе своего наступления республиканцы смогли освободить территорию шириной 15 и глубиной 12 километров. Но эти скромные приобретения были достигнуты ценой огромных потерь. Основной ошибкой было стремление захватить каждый населенный пункт. Для этого использовались танки, большее число которых было уничтожено. Пехота слишком поздно после артподготовки поднималась в атаку, и мятежники успевали выйти из укрытий и снова занять оборону. Мобилизованные новобранцы были плохо обучены и пребывали в состоянии животного ужаса от ударов с воздуха.