Афины и Спарта (с союзниками) были вынуждены довольствоваться своими собственными силами.
Фессалия и весь остальной север Греции сдались врагу.
Чтобы относительно небольшая греческая армия могла успешно сопротивляться, ей нужно было место, где огромная персидская армия не могла развернуться и использовать свое преимущество в численности. И такое место было – Фермопильский проход в 140 километрах (по прямой), на границе между Малидой и Локридой Эпикнемидской. Это была узкая, относительно ровная полоса суши между морем (Малийский залив) и стеной крутых Трахинских скал. В то время в некоторых местах проход был в несколько сот метров в ширину. (Сегодня полоса ровной земли между горами и морем стала намного шире.)
В июле 480 г. до н. э. огромная армия Ксеркса двинулась к Фермопилам, где ее встретили около 5 тысяч греческих воинов под предводительством Леонида, царя Спарты.
Ксеркс сначала не поверил, что такая маленькая армия посмеет дать ему бой. Но 5 тысяч греков целых два дня отбивали атаки огромной армии врага, имея обеспеченный тыл. Однако нашелся предатель, который показал персам обходные тропинки, которые вывели противника в тыл оборонявшимся. В ночь на третий день персы сбили заслон, выставленный греками на перевале, и, оседлав перевал, стали выходить в тыл греческому войску, оборонявшему Фермопильский проход. К этому времени у греков в строю оставалось 1200 гоплитов (потери были велики). Заметив обход, спартанский царь Леонид отпустил всех оставшихся в живых союзников, а сам с 300 спартанцами остался на месте. Персы окружили отряд Леонида и уничтожили его в неравном бою. Ни один спартанец не сдался врагу. Впоследствии на могиле Леонида и его воинов был воздвигнут памятник с надписью: «Путник, пойди возвести нашим гражданам в Лакедемоне, что, их заветы блюдя, здесь мы костьми полегли». В бою в Фермопильском проходе иранская армия потеряла около 20 тысяч человек, греки – около 4 тысяч человек.
Бой под Фермопилами воодушевил греков своим героизмом. Тем не менее персы и их союзники, хотя и с большими потерями, прорвались в Среднюю Грецию.
Одновременно происходил трехдневный морской бой у мыса Артемисий (север острова Эвбея). Пользуясь пассивностью персов, греки в течение двух дней атаковали противника. На третий день персидский флот атаковал греков, занявших в узком месте пролива удобную для обороны позицию. Ночью греки получили известия о прорыве персов через Фермопильский проход и отошли к острову Саламин. Пройдя подчинившуюся ему Беотию, Ксеркс занял и сжег Афины. Он встал у Акрополя. Наконец-то, через двадцать лет, Сарды были отомщены!
Но захватчиков встретили пустые земли Аттики, и Ксеркс, захвативший Афины, не нашел там ни одного афинянина. Все население Аттики было эвакуировано на Пелопоннес и близлежащие острова, а все способные носить оружие мужчины перешли на палубы военных кораблей.
Греческие корабли, включая сверкающие новизной афинские триеры, стояли между Саламином и континентальной Аттикой. Дельфийское предсказание становилось правдой, и, хотя вся Аттика была захвачена, «деревянные стены» флота оставались свободными, а значит, Афины еще не проиграли окончательно.
Хотя греческий флот (по Геродоту, 358 кораблей) был больше чем наполовину афинским, командующим был спартанец Еврибиад.
Еврибиад считал, что при таком численном преимуществе персидского флота (свыше 800 кораблей, есть мнение, что около 500, против 358 греческих) исход сражения сомнителен. Он хотел двинуться на юг, чтобы защищать берега Пелопоннеса, единственной части Греции, еще не занятой захватчиками (в то время как сухопутная греческая армия закрепилась на Коринфском перешейке).
Афинский лидер Фемистокл возражал против такого решения так горячо, что Еврибиад вышел из себя и хотел ударить афинянина. Тогда Фемистокл крикнул: «Бей, но выслушай!»
Спартанец смутился и выслушал убедительные доказательства Фемистокла, который объяснил, что позиция персидского флота крайне неудачна – корабли врага стояли тесно, в три линии, дно в проливе у Саламина изобиловало мелями, камнями и скалами. В тесноте персы не смогут использовать численное превосходство. Ксеркс решил окружить флот греков и выделил 200 судов для заграждения всех выходов из Саламинского пролива. Вслед за этим главные силы персов атаковали греков. Однако, как и предполагал Фемистокл, персы не смогли использовать свое численное превосходство: греки хорошо знали фарватер, их корабли хорошо маневрировали. В результате персидский флот (большей частью финикийский, а также ионийский и египетский) был разбит, его остатки отступили. Персы потеряли 200 кораблей, греки – 40.
Это были «морские Фермопилы», но со счастливым концом. В морской битве у Саламина, происходившей 28 (по другим данным – 27) сентября 480 г. до н. э., возможно, была снова спасена Греция. Эта победа имела большое значение: теперь греки могли легко прервать коммуникации иранской армии; опасаясь этого, Ксеркс с частью воинов ушел из Греции, оставив там значительные силы под командованием Мардония.