Bitka
Prvi dan bitke
Petog dana nakon persijskoga dolaska kod Termopila Kserks I je odlučio da konačno napadne Grke. Bio je to faktički prvi dan bitke. Do tada se Kserks nadao da će Grci sami da pobegnu iz prolaza. Najpre je Međane i Kisijce poslao protiv Grka sa naređenjem da ih zarobe i dovedu pred njega. Napali su grčku hoplitsku falangu, koja se nalazila ispred fokejskoga zida, na najužem delu Termopilskoga klanca. Diodor pominje da su Grci stajali u poziciji rame uz rame i da su bili nadmoćniji u vojnoj veštini i zbog mnogo većih štitova. Taj Diodorov opis se slaže sa opisom standardne grčke hoplitske falange, u kojoj vojska čini zid od preklopljenih štitova, ispred kojih su usmerena koplja. Falanga je bila efikasna dok god je pokrivala širinu Termopilskoga klanca. Slabiji štitovi i kraća koplja onemogućavali su persijsku pešadiju da se efiksno bori protiv grčkih hoplita u falangi. Herodot spominje da je svaki grad bio na okupu u svojoj jedinici i da su se jedinice rotirale, tako da bi jedno vreme bile raspoređene napred, a kasnije odotraga, sa ciljem da se odmore. To govori da je grčka strana imala dovoljno vojske za blokadu prolaza i da je imala na raspolaganju stalno odmorne jedinice. Grci su za vreme prvoga dana ubili tako mnogo Međana da je navodno kralj Kserks tri puta skakao sa svoga sedišta strahujući za svoju vojsku. Prema Ktesiji prvi persijski val je sasečen, a pri tome su poginula samo 2 ili tri Spartanca. Prema Diodoru i Herodotu persijski kralj je nakon toga odlučio da u bitku ubaci svoju najbolju vojsku, Persijske besmrtnike, elitnu jedinicu od 10.000 vojnika. Međutim ni besmrtnici nisu uspeli da se probiju kroz grčku falangu. Spartanci su pokazali kavim ratnim veštinama raspolažu, kada su počeli tobože da beže, pa bi se onda vratili i u kontranapadau pobili mnogo Persijanaca
Drugi dan bitke
Drugoga dana Kserks je ponovo slao pešadiju da uporno napada, pošto se nadao da će među malobrojnim Grcima biti sve više ranjenih i da će onda obrana morati da popusti. Ipak i drugoga dana persijska vojska nije imala nikakvih rezultata sem velikoga broja poginulih. Kserks I je na kraju obustavio napade i povukao se u logor. Kasnije dok je Kserks I razmatrao šta da preduzme stigao mu je trahinijski izdajnik Efijalt, koji je kralju otkrio stazu koja kroz planine vodi do Termopila. Efijalt je otkrio stazu nadajući se velikoj nagradi od kralja. Zbog toga akta izdaje Efijalt je postao arhetipski izdajnik u grčkoj kulturi. Kserks je onda uveče poslao Hidarna sa vojskom da po toj zaobilaznoj stazi stigne do Termopila. Prema Diodoru Hidarn je na raspolaganju imao 20.000 vojnika za tu misiju. Staza je vodila istočno od persijskoga logora do grebena planine Anop. S desne strane su im bili obronci planine Ete, a sa leve Trehinska brda. Staza se granala, pa je jedan krak vodio do Alpena.
Treći dan bitke
Stražu na stazi držali su Fokejci, koje je tu rasporedio Leonida. Fojejci su po velikom šuštanju lišća saznali da se Persijanci penju stazom. Obe strane su bile iznenađene iznenadnim susretom. Hidarn se bojao da se radi o Spartancima, ali Efijalt mu je objasnio da se radi o Fokejcima. Fokejci su smatrali da je velika persijska vojska krenula na njih, pa su se pod kišom strela povukli na vrh planine, gde su se pripremili da se odupru. Persijancima je bila otvorena staza, pa su onda mogli neometano da krenu prema glavnoj grčkoj vojsci na Termopilama. Leonida je preko noći saznao najpre od prebega da su Persijanci krenuli kroz brda, a ujutro su ga obavestili izviđači, da Fokejci nisu zadržali persijsku vojsku i da preti opasnost. Odmah je sazvano ratno veće na kome su jedni bili za povlačenje, ali Leonida je bio za to da ostanu. Većina grčkih savezničkih jedinica odlučila je da se povuče, a Herodot je tu nesiguran da li su to učinili svojevoljno, ili uz Leonidino odobrenje. Ostalo je 700 Tespijaca, pod komandom Demofila, 400 Tebanaca, Spartanci i deo helota, koji ih je pratio.