En la década de 1870, el capitán Nathan Algren (Tom Cruise), un veterano del ejército de los Estados Unidos América que trabaja como showman para la compañia armamentistica Winchester vendiendo sus rifles.
Al fianlizar una de sus actuaciones es contactado por un viejo colega suyo del ejército. Zebulon Gant (Billy Connolly) que lo lleva a una reunión con el embajador de Japón Omura (Masato Harada), que esta dispuesto a contratarlos para que entrenen al ejercito del Emperador en su lucha contra el samurái rebelde Katsumoto (Ken Watanabe).
Una vez comenzado el entrenamiento de las tropas, y con los soldados lejos de estar listos para el combate, su superior el coronel Bagley (Tony Goldwyn) le manda marchar contra Katsumoto ya que cree tener la superioridad en su mayor número y sus armas de fuego.
Pero durante la batalla se demuestra que Nathan estaba en lo cierto y la inexperiencia de los soldados les lleva a la derrota contra los samuráis, donde el Nathan es capturado por Katsumoto y llevado a su campamento.