General Maximus Decimus Meridius (Russell Crowe) leads soldiers of the Roman army to a decisive victory against Germanic barbarians, finally ending a long war on the Roman frontier and earning the esteem of the elderly Emperor Marcus Aurelius (Richard Harris). Marcus is dying and, though he has a son, Commodus (Joaquin Phoenix), the emperor wishes to grant temporary leadership to Maximus, with a desire to eventually return power to the Senate. When Commodus is told directly by his father that he will not be appointed emperor, he secretly murders Marcus in a fit of rage and claims the throne.
Maximus realizes the truth about Commodus' patricide but is betrayed by his friend, General Quintus (Tomas Arana), who, albeit reluctantly, instructs the Praetorian guards to carry out Commodus' order to execute Maximus. Soldiers are also sent to murder Maximus' wife (Giannina Facio) and son (Giorgio Cantarini). Maximus manages to escape his assassination, and races home only to find that he was too late to save his family, who have been crucified. After burying them, Maximus is found unconscious by slave traders and taken to Zucchabar, a Roman city in North Africa. There, he's bought by a slave trader named Proximo (Oliver Reed) and forced to fight for his life as a gladiator in arena tournaments. During this time, he befriends the Numidian gladiator, Juba (Djimon Hounsou), and a barbarian from Germania named Hagen (Ralf Möller). Juba proves to be a great comfort to Maximus, encouraging him to have faith he'll be reunited with his family in the afterlife when he dies.
Under the moniker "Spaniard", Maximus gains notoriety through his impressive victories as a gladiator, ultimately reaching the historic Roman Colosseum, where his group is contracted to fight in Commodus' tribute to the Battle of Carthage. In his first event, he skillfully leads a band of gladiators to defeat an opposing force of chariots and archers, earning the crowd's praise through his heroics. Upon being introduced to Commodus in the arena afterward, he reveals his true identity and vengeful intentions to the stunned emperor, who considers having Maximus executed on the spot. However, the crowd votes for him to live and Commodus spares Maximus to appease them. Maximus later survives an indirect attack on his life when he's forced into a match against Tigris of Gaul (Sven-Ole Thorsen), Rome's only undefeated gladiator. Maximus avoids being killed by tigers released into the arena and defeats Tigris, yet refuses to obey Commodus' command to perform the coup de grâce. As a result, he's pronounced "Maximus the Merciful" by the crowd, which furthers Commodus' frustration, as it seems he cannot kill Maximus without losing popular support.
Following the fight, Maximus is met by his former servant Cicero (Tommy Flanagan), who informs him that his army is still loyal to him. Soon thereafter, Maximus conspires with Lucilla (Connie Nielsen), Commodus' sister, and the senator Gracchus (Derek Jacobi), to rejoin with his army and topple Commodus by force. Commodus, however, suspects his sister of betrayal and manipulates her into revealing the plot by indirectly threatening her young son Lucius (Spencer Treat Clark). During Maximus' attempted escape, Commodus' guards attack Proximo's gladiator school. Hagen and Proximo are killed in the attack, while Juba and the survivors are imprisoned. Maximus makes it to the city walls, but Cicero, who was waiting for him with horses, is killed by archers and Maximus is arrested by the guards.
Now desperate to have Maximus killed, Commodus arranges a duel with him in the arena. Commodus acknowledges Maximus as a superior fighter, and then stabs a restrained Maximus in his side with a stiletto before they enter the arena. In the midst of the fight, Maximus forces Commodus' sword from his hands. When Commodus demands a sword from the surrounding guards, Quintus orders them to sheathe their weapons. Commodus produces the hidden stiletto, but Maximus plunges the stiletto into Commodus's jugular, killing him. With his dying words Maximus carries out Marcus Aurelius's commands, calling for Gracchus to be reinstated, the slaves to be freed, and power in Rome to be transferred to the Senate. Maximus dies in Lucilla's arms and his soul wanders into the afterlife with his family. Lucilla reiterates Maximus' wishes, reminding everyone that Maximus was a soldier of Rome and that his memory should be honored. Maximus' body is carries out and the people watch as a sign of respect. Some time later, Juba, now free, buries Maximus' two small figurines of his wife and son in the ground where Maximus died, promising to see Maximus in the afterlife.