En el norte de Britania, 62 DC, una tribu de jinetes celtas es brutalmente aniquilada por romanos liderados por Corvus (Kiefer Sutherland). El único sobreviviente, un niño llamado Milo, cuya madre Corvus mató personalmente, es capturado por comerciantes de esclavos.
Diecisiete años después, en Londinium en el año 79 d. C., el dueño de esclavos Graecus (Joe Pingue) observa a una clase de gladiadores luchar, sin impresionarse hasta que ve al adulto Milo (Kit Harington), un gladiador talentoso que la multitud llama «el Celta». Milo pronto es llevado a Pompeya con sus compañeros esclavos. En el camino, ven a un caballo caer mientras dibujan un carruaje que lleva a Cassia (Emily Browning), que regresa después de un año en Roma, y a su sirvienta Ariadna (Jessica Lucas). Milo mata al caballo para poner fin a su sufrimiento, y Cassia se siente atraída por él. Cassia es la hija del gobernador de la ciudad Severus (Jared Harris) y su esposa Aurelia (Carrie-Anne Moss). Severo espera que el nuevo emperador Tito invierta en planes para reconstruir Pompeya, a pesar de la advertencia de Cassia de que Roma se volverá más corrupta. Felix (Dalmar Abuzeid), un sirviente, toma el caballo Vires de Cassia para dar un paseo solo para ser tragado cuando un terremoto del monte Vesubio abre el suelo debajo de él.
En Pompeya, Milo desarrolla una rivalidad con Atticus (Adewale Akinnuoye-Agbaje), un gladiador campeón que, según la ley romana, recibirá su libertad después de ganar una victoria más. Los gladiadores son mostrados en una fiesta donde Corvus, ahora senador, le dice a Severus que el Emperador no invertirá en sus planes, pero él mismo lo hará. Se revela que Cassia dejó Roma para escapar de los avances de Corvus. Cuando un terremoto causa ansiedad en algunos caballos, Milo ayuda a calmarlos. Luego lleva a Cassia a dar un paseo y le dice que no pueden estar juntos. Al regresar a la villa, Corvus está listo para matar a Milo (sin reconocerlo de la masacre del pueblo), pero Cassia ruega por la vida de Milo. Milo es azotado por sus acciones, y Atticus admite respeto por su rival mientras se preparan para enfrentarse en el próximo festival.
En el Anfiteatro de Pompeya, para castigar a Milo, Corvus ordena matarlo en la primera batalla, y el malvado entrenador Bellator (Currie Graham) convence a Graecus de sacrificar a Atticus, también. Los dos hombres, y otros gladiadores, están encadenados a las rocas mientras otros gladiadores salen como soldados romanos, para recrear la victoria de Corvus sobre los celtas. Trabajando juntos, Milo y Atticus sobreviven a la batalla; Atticus se da cuenta de que los romanos nunca honrarán su libertad. Durante la batalla, Corvus obliga a Cassia a aceptar casarse con él amenazando con matar a su familia por supuesta traición contra el Emperador. Cuando Milo y Atticus ganan, Cassia desafía a Corvus sosteniendo un «pulgar hacia arriba» para que vivan, y Corvus la lleva a la villa para que la encierren. Afirmando que un terremoto es una señal de Vulcano, Corvus hace que su oficial Proculus (Sasha Roiz) luche contra Milo uno a uno. Su batalla se interrumpe cuando el monte Vesubio entra en erupción, creando temblores masivos que hacen que la arena colapse, enviando a Milo y Proculus a estrellarse en las mazmorras. Milo abre las puertas para permitir que sus compañeros gladiadores tengan la oportunidad de atacar; Próculus escapa, mientras que los gladiadores matan a Bellator. Al ver a Corvus caer bajo una viga colapsada, Severus intenta matarlo, pero Corvus lo apuñala y escapa.
La erupción envía escombros en llamas que llueven sobre la ciudad mientras la población intenta huir al puerto. Una bola de fuego destruye y hunde una nave, matando a los Graecus que escapan. Antes de morir, Aurelia le dice a Milo que Cassia está en la villa. Milo corre a la villa y logra salvar a Cassia, pero Ariadna muere cuando la villa se derrumba en el mar Mediterráneo. Atticus intenta llegar al puerto, pero un tsunami creado por el volcán rompe la ciudad, destruyendo el puerto y las paredes exteriores, y destrozando varios barcos. Reuniéndose con Atticus, Milo sugiere buscar caballos en la arena para escapar. Mientras los gladiadores se enfrentan a soldados romanos en la arena, Cassia es secuestrada por Corvus después de encontrar los cuerpos de sus padres. Atticus hace que Milo persiga al carro que lleva a los dos mientras lucha contra Proculus. Atticus es herido de muerte en el duelo, pero sin embargo logra matar a Próculus.
Milo persigue a Corvus por toda la ciudad; ambos apenas evitan las bolas de fuego y la infraestructura colapsa. Cassia se las arregla para liberarse antes de que el carro se estrelle contra el Templo de Apolo. Milo y Corvus se enfrentan mientras una bola de fuego destruye el templo. Cassia encadena a Corvus a un edificio, mientras Milo declara quién es, que Corvus mató a su familia y ahora sus dioses vienen a castigar al Senador. Milo y Cassia se marchan mientras una oleada piroclástica corre hacia la ciudad, incinerando a Corvus. En la arena, Atticus proclama con orgullo que muere como un hombre libre antes de ser consumido por el flujo piroclástico. En las afueras de la ciudad, el caballo lanza a Milo y Cassia. Milo le dice a Cassia que lo deje, dándose cuenta de que el caballo no es lo suficientemente rápido para cargarlos a ambos. En su lugar, ella envía al caballo, sin querer pasar sus últimos momentos corriendo, y sabiendo que no pueden escapar de la oleada. Milo besa a Cassia mientras la oleada los envuelve. La última toma es de los cuerpos petrificados del dúo, encerrados en un abrazo eterno.