Es ist das letzte Aufgebot: 300 loyale Elite-Kämpfer stehen König Leonidas (Gerard Butler) von Sparta bei, als er 480 vor Christus in den Krieg zieht. Geradezu lebensmüde mutet sein Versuch an, sich dem in die Hunderttausende gehenden Heer von Perserkönig Xerxes (Rodrigo Santoro) entgegenzustellen, der in Griechenland eingefallen ist und das Land unterjocht. Leonidas beabsichtigt das Abendland in der Enge der Thermopylen verteidigen zu können. Zunächst stellen sich tatsächlich Erfolge ein - bis Verrat und Neid den Plan torpedieren.