Un ambasciatore persiano si presenta a Sparta e chiede al re Leonida la sottomissione di Sparta per conto del grande re Serse. Leonida e gli spartani, offesi dal suo comportamento, uccidono lui e la sua scorta armata gettandoli in un pozzo. Leonida, consapevole di avere innescato una nuova guerra contro i persiani, si reca (come da prassi politica) dall'oracolo per spiegare agli efori il suo piano per contrastare i persiani e per chiederne l'approvazione. Il re spartano porta anche l'offerta rituale in oro come richiesto dalla tradizione. In realtà gli efori sono stati corrotti dai persiani e quindi interpretano le profezie in modo da fermare Leonida. L'oracolo ordina quindi al re di attendere la fine della festività della Carneia prima d'iniziare la guerra.
Nonostante gli avvertimenti Leonida raggruppa 300 dei migliori guerrieri spartani e si avvia a combattere contro i Persiani; formalmente i 300 sono la sua guardia personale e quindi il re non viola le richieste dell'oracolo. Durante il viaggio un gruppo di Arcadi si unisce alla spedizione. Arrivati alle Termopili, gli spartani rimettono in sesto i muri focesi con i cadaveri degli esploratori persiani costringendo l'esercito nemico a infilarsi in una stretta gola. La battaglia da affrontare sarà durissima: i persiani infatti possiedono un esercito enorme. Alle Termopili Leonida incontra Efialte, uno spartano deforme salvato da una morte certa in tenera età: la società di Sparta, infatti, è molto rigida: solo i bambini sani possono vivere, quelli deformi sono gettati in un dirupo. Efialte informa il re dell'esistenza di un sentiero segreto tramite il quale è possibile aggirare le Termopili, quindi gli chiede di poter combattere con i 300 spartani per riscattare l'onore del padre. Leonida non può che rifiutare poiché gli impedimenti fisici di Efialte avrebbero creato un punto debole nell'impenetrabile muro di scudi della falange spartana.
Mentre i due eserciti nemici sono uno di fronte all'altro per iniziare la lunga battaglia contro i nemici molto più numerosi di loro, un messaggero persiano ordina a Leonida di gettare le armi e arrendersi; per tutta risposta Leonida uccide l'ambasciatore e risponde "Venite a prenderle!". Così dà inizio al combattimento, e si scontra contro i nemici protetto dai suoi guerrieri che, serrati a muro contro gli attaccanti, vincono la battaglia provocando perdite enormi tra i Persiani, compiendo un massacro dei soldati di Serse; i Persiani tentano di attraversare le Termopili con una compatta massa di fanteria pesante ma vano è il loro tentativo quando si ritrovano tutti giù dalla scogliera, mentre Leonida ed i suoi vincono la cavalleria persiana che veniva all'attacco in quel momento; i Persiani lanciano contro Leonida ed i suoi soldati un turbine di frecce che si conficca negli scudi nemici ma non riescono a colpire alcun soldato per via della protezione di Leonida e dei suoi guerrieri.
Serse, impressionato dalla tenacia dei soldati di Leonida, si reca a parlare personalmente con il re Spartano e gli offre, in cambio della resa, il titolo di generale di tutta la Grecia. Leonida rifiuta l'offerta deridendo il re persiano che, offeso dalle parole del re spartano, invia le sue truppe da combattimento migliori: i soldati d'èlite Immortali, mostruosi e pericolosi guerrieri che si vestono di nero e indossano maschere spaventose di metallo che danno molto filo da torcere nell'esercito di Leonida. Diversi spartani perdono la vita, mentre Leonida affronta un'enorme energumeno Immortale riuscendo ad ucciderlo tagliandoli la testa. Infine, il re spartano aggira i nemici con l'appoggio degli Arcadi e riesce a sterminarli provocando altrettante perdite.
Serse scaglia contro i soldati la fanteria persiana oltre a un enorme rinoceronte da guerra. Il figlio del capitano però, abbatte l'animale con un colpo preciso di lancia. Serse allora invia prima i genieri dotati di esplosivi e gli elefanti da guerra. Entrambi gli attacchi falliscono.
Un cavaliere persiano, sbucato all'improvviso dalla nebbia, decapita proprio il figlio del capitano ed il padre, per vendicarlo, furente, si getta contro i nemici in arrivo falciandone molti; poi si lancia sul figlio morto ed urla talmente tanto sul suo corpo che Leonida ed i suoi sono costretti a portarlo via ed a stenderlo per terra per cercare di farlo calmare; ha termine così la dura e lunghissima battaglia di Leonida e dell'esercito di Serse.
Efialte intanto si reca nel campo dei persiani e in cambio di una posizione di prestigio all'interno dell'esercito di Serse rivela il percorso segreto per attraversare le Termopili.
Nello stesso tempo a Sparta la regina Gorgo su suggerimento di un consigliere cerca di convincere Terone ad aiutarla a convincere il consiglio spartano a inviare l'intero esercito in guerra. Terone accetta di aiutare Leonida ma chiede in cambio favori sessuali alla regina che, per il bene del marito, acconsente. Intanto i greci vengono a sapere del tradimento di Efialte e sono sorpresi alle spalle dall'esercito di Serse. Gli Arcadi decidono di ritirarsi in modo da evitare morte certa. Leonida e gli spartani invece rimangono al loro posto, come ordina la legge spartana, ma il re ordina al suo commilitone Delios, di tornare a Sparta e di raccontare la storia dei trecento in modo da convincere il consiglio spartano a inviare in guerra l'intero esercito della città. Delios esegue l'ordine di Leonida e abbandona il campo con gli Arcadi. Intanto a Sparta la regina Gorgo si presenta davanti al consiglio per chiedere l'intervento dell'esercito. Terone non sostiene la regina ma anzi l'accusa di adulterio davanti all'intero consiglio. La regina furente per gli insulti subiti brandisce una spada e uccide Terone. Questi cade a terra morto e alcune sue monete rotolano per la sala del consiglio, monete persiane con il volto di Serse che rendono palese il suo tradimento.
Alle Termopili i persiani circondano i 300 da tutti i lati e i messaggeri di Serse chiedono la resa di Leonida. Il Grande Re offre nuovamente il governo della Grecia a Leonida in cambio della sua sottomissione. Leonida si libera di elmo e scudo e con un movimento repentino tira la propria lancia ferendo la guancia di Serse e mantenendo così la promessa fatta al Re dei Re prima della battaglia ("Prima che questa guerra sarà finita, si saprà che anche un Dio Re può sanguinare"). Serse ordina all'esercito di uccidere Leonida e gli arcieri persiani li bersagliano, uccidendoli.
Delios torna a Sparta e riferisce al consiglio le gesta dei 300. Un anno dopo Delios termina il racconto delle gesta dei 300 davanti all'esercito dei greci al completo che stanno per affrontare l'esercito persiano. Egli ricorda che quell'esercito che riuscì con estrema difficoltà a vincere 300 spartani ora dovrà tremare davanti a 10.000 spartani e a 30.000 greci provenienti dalle altre città stato. Ha così inizio la battaglia di Platea, che vedrà vittoriosa la Grecia e segnerà la fine dell'invasione.