Nella Britannia settentrionale, 62 DC, una tribù di cavalieri celtici viene brutalmente spazzata via dai Romani guidati da Corvus (Kiefer Sutherland). L’unico sopravvissuto, un ragazzo di nome Milo, la cui madre Corvus ha ucciso personalmente, viene catturato dai mercanti di schiavi.
Diciassette anni dopo, a Londinium nel 79 d. C., proprietario di schiavi Graecus (Joe Pingue) guarda una classe di gladiatori battaglia, impressionato fino a quando non vede il Milo cresciuto (Kit Harington), un gladiatore di talento la folla chiama “il Celto”. Milo viene presto portato a Pompei con i suoi compagni schiavi. Sulla strada, vedono un cavallo cadere mentre disegna una carrozza che trasporta Cassia (Emily Browning), di ritorno dopo un anno a Roma, e la sua serva Arianna (Jessica Lucas). Milo uccide il cavallo per porre fine alla sua sofferenza, e Cassia è attratta da lui. Cassia è la figlia del governatore della città Severus (Jared Harris) e di sua moglie Aurelia (Carrie-Anne Moss). Severo spera di avere il nuovo imperatore Tito investire in piani per ricostruire Pompei, nonostante l’avvertimento di Cassia di Roma diventare più corrotto. Felix (Dalmar Abuzeid), un servo, prende il cavallo di Cassia Vires per un giro solo per essere inghiottito quando un terremoto dal Vesuvio apre il terreno sotto di lui.
A Pompei, Milo sviluppa una rivalità con Atticus (Adewale Akinnuoye-Agbaje), un gladiatore campione che, per legge romana, riceverà la sua libertà dopo aver ottenuto un’altra vittoria. I gladiatori vengono mostrati ad una festa in cui Corvus, ora senatore, dice a Severo che l’imperatore non investirà nei suoi piani ma lo farà lui stesso. Si scopre che Cassia ha lasciato Roma per sfuggire alle avances di Corvus. Quando un terremoto fa diventare ansiosi alcuni cavalli, Milo aiuta a calmarne uno. Poi prende Cassia su un giro e le dice che non possono stare insieme. Tornato alla villa, Corvus è pronto ad uccidere Milo (non riconoscendolo dal massacro del villaggio), ma Cassia supplica per la vita di Milo. Milo è frustato per le sue azioni, e Atticus ammette il rispetto per il suo rivale mentre si preparano ad affrontarsi al prossimo festival.
Nell’Anfiteatro di Pompei, per punire Milo, Corvus lo ordina ucciso nella prima battaglia, e il malvagio allenatore Bellator (Currie Graham) convince Graecus a sacrificare anche Atticus. I due uomini, e altri gladiatori, sono incatenati alle rocce mentre altri gladiatori escono come soldati romani, per ricreare la vittoria di Corvus sui celti. Lavorando insieme, Milo e Atticus sopravvivono alla battaglia; Atticus si rende conto che i Romani non onoreranno mai la sua libertà. Durante la battaglia, Corvus costringe Cassia ad accettare di sposarlo minacciando di far uccidere la sua famiglia per presunto tradimento contro l’Imperatore. Quando Milo e Atticus vincono, Cassia sfida Corvus tenendo un “pollice in su” per loro di vivere, e Corvus la porta alla villa per essere rinchiusa. Sostenendo che un terremoto è un segno di Vulcano, Corvus ha il suo ufficiale Proculus (Sasha Roiz) combattere Milo uno contro uno. La loro battaglia viene interrotta quando il Vesuvio erutta, creando enormi tremori che causano il crollo dell’arena, mandando Milo e Proculo a schiantarsi nei sotterranei. Milo apre le porte per permettere ai suoi compagni gladiatori la possibilità di attaccare; Proculus fugge, mentre i gladiatori uccidono Bellator. Vedendo Corvus caduto sotto una trave crollata, Severus cerca di ucciderlo, ma Corvus lo pugnala e fugge.
L’eruzione manda detriti fiammeggianti che piovono sulla città mentre la popolazione cerca di fuggire al porto. Una palla di fuoco distrugge e affonda una nave, uccidendo il Graecus in fuga. Prima di morire, Aurelia dice a Milo che Cassia è alla villa. Milo corre alla villa e riesce a salvare Cassia, ma Arianna viene uccisa quando la villa crolla nel Mar Mediterraneo. Atticus cerca di raggiungere il porto, ma uno tsunami creato dal vulcano si abbatte sulla città, distruggendo il porto e le mura esterne, e distruggendo diverse navi. Riunendosi con Atticus, Milo suggerisce di cercare nell’arena i cavalli per fuggire. Mentre i gladiatori affrontano i soldati romani all’arena, Cassia viene rapita da Corvus dopo aver trovato i corpi dei suoi genitori. Atticus ha Milo inseguire il carro che trasporta i due mentre combatte Proculus. Atticus viene ferito mortalmente nel duello, ma riesce comunque ad uccidere Proculus.
Milo insegue Corvus attraverso la città; entrambi a malapena evitano palle di fuoco e infrastrutture che crollano. Cassia riesce a liberarsi prima che il carro si schianti nel Tempio di Apollo. Milo e Corvus duellano mentre una palla di fuoco distrugge il tempio. Cassia incatena Corvus in un edificio, mentre Milo dichiara chi è, che Corvus ha ucciso la sua famiglia e ora i suoi dei stanno venendo a punire il Senatore. Milo e Cassia cavalcano fuori come un aumento piroclastico corse in città, incenerendo Corvus. All’arena, Atticus proclama con orgoglio che muore un uomo libero prima di essere consumato dal flusso piroclastico. Alla periferia della città, il cavallo getta via Milo e Cassia. Milo dice a Cassia di lasciarlo, rendendosi conto che il cavallo non è abbastanza veloce per portarli entrambi. Invece, manda via il cavallo, non volendo passare i suoi ultimi momenti in esecuzione, e sapendo che non possono superare l’ondata. Milo bacia Cassia mentre l’ondata li travolge. L’ultimo scatto è dei corpi pietrificati del duo, chiusi in un eterno abbraccio.