During a shootout against Chinese Triads at a San Francisco dock warehouse, FBI agents John Crawford (Jason Statham) and Tom Lone (Terry Chen) stumble across the notorious assassin Rogue (Jet Li), a former CIA assassin who now works for the Japanese Yakuza. Rogue ambushes Crawford and is about to execute him when Lone appears and shoots Rogue in the face, causing him to fall into the water. Rogue's body was never found and he is presumed dead. However, Rogue survives and retaliates against Lone, his wife and his daughter. He kills them, burns down the house, and leaves their three corpses in the ashes of their home.
Three years later, Rogue re-appears, working under Chinese Triad boss Li Chang (John Lone). Rogue is assisting Chang against Chang's arch-enemy and Rogue's former employer, the leader of the Japanese Yakuza, Shiro Yanagawa (Ryo Ishibashi). Rogue first attacks a club run by the Yakuza by killing the gangsters and later on the runners in order to recover a pair of antique gold horses, family heirlooms of Chang. However, Rogue is secretly setting the Yakuza and the Triads against each other, in order to push the two factions toward all-out war.
Now the head agent of the FBI's Asian Crime Task Force, Crawford is determined to hunt Rogue down and exact revenge for Lone's death. Crawford's obsessive pursuit of Rogue has taken a toll on his personal life causing him to be estranged from his family. Crawford comes close to catching Rogue in the wake of Rogue's various killing sprees against the Triads and Yakuza, but Rogue always manages to stay one step ahead.
Ultimately, Rogue's actions have gained the trust of both Chang and Yanagawa. Rogue succeeds in betraying Chang, but spares Chang's wife and child, turning on the Yakuza. With Chang dead, Yanagawa is finally ready to come to America, where he intends to take over and expand Yakuza business operations. However, he is confronted by Crawford and the FBI; Crawford presents Yanagawa with proof that Rogue has betrayed him and spared Chang's family, but Yanagawa refuses to assist Crawford in locating Rogue.
Later, Rogue delivers the horses to Yanagawa personally. Knowing of Rogue's betrayal, Yanagawa captures Rogue and demands the location of Chang's family. Rogue turns the tables on Yanagawa's men and kills them all, and engages in a sword fight against Yanagawa himself. Yanagawa discovers that Rogue is actually FBI agent Tom Lone (who, after undergoing plastic surgery, changed his voice to obtain a Japanese accent); and killed the real Rogue, assuming the assassin's identity. Rogue/Lone reveals that his actions have all been designed to bring him face-to-face with Yanagawa, so he could kill the man who ordered the death of his family. Yanagawa reveals that Crawford was in his pocket that whole time and responsible for leaking Tom Lone's identity and home address to the real Rogue. Angered, Rogue/Lone disarms and decapitates Yanagawa.
Meanwhile, Chang's wife receives a package from Rogue/Lone, containing one of the two golden horses that belongs to Chang's family and a message reading, "Make a new life". Yanagawa's daughter also receives a package with the same message and inside the box is her father's head. Rogue/Lone then calls Crawford as he is packing up his office, asking him to meet him at the dock warehouse where they last made their investigation. Before going to the warehouse, Crawford enlists the help of Goi (Sung Kang), an FBI sniper that aided Crawford throughout the investigation.
At the warehouse, Crawford and Rogue/Lone battle each other in an intense hand-to-hand fight in which Rogue/Lone reveals who he really is to Crawford.
When Rogue/Lone reveals his true identity, a devastated Crawford reveals that it was true that he was working for Yanagawa at the time but had no idea that Rogue was still alive. He was then blackmailed and gave Yanagawa Lone's address thinking that Yanagawa's men were only going there to "rough him up a bit". Ever since, Crawford was angry at himself and wanted revenge against Rogue and everyone else involved in what he thought was his partner's death.
However, Crawford begs Lone for forgiveness, but Lone denies him, coldly replying "Tom Lone is dead, my name is Rogue". As Rogue takes out a gun to shoot Crawford, Goi takes aim at him. Crawford jumps in Goi's line of fire, and allowing Rogue the opportunity to shoot him in the back, killing him. The next day, Rogue/Lone later drives out of town to start a new life.
Crawford wanted revenge with everyone involved in what?
His partner's death