Gates of Fire a pour cadre la bataille des Thermopyles qui opposa, en l'an 480 avant Jésus-Christ, les armées athénienne et spartiate aux troupes persanes de Xerxès 1er.
Antonio (Luigi Lo Cascio) est un chauffeur, passionné de science-fiction. Il s'est inventé un compagnon imaginaire nommé Morgan. Chaque lieu où il se rend constitue une nouvelle aventure. A Rome, il fait la connaissance de Maria (Sandra Ceccarelli), une jeune femme dont il tombe amoureux.