In 1980, hired hitmen Danny Bryce (Jason Statham), Hunter (Robert DeNiro), Davies (Dominic Purcell), and Meier (Aden Young) are in Mexico to assassinate a man. Danny unwittingly kills him in front of his young son, then is injured during the getaway. Affected by this outcome, Danny retires and returns to his native Australia.
One year later, Danny is summoned to Oman where Hunter is being held captive . He meets with his shadowy contact known only as the Agent (Adewale Akinnuoye-Agbaje), who arranges missions for mercenaries, and learns that Hunter accepted a $6 million job but failed to accomplish it. If Danny doesn't complete Hunter's mission, Hunter will be executed by the Agent's superiors.
Danny is introduced to Sheikh Amr, a deposed king of a small region of Oman who wants Danny to kill three former SAS agents; Steven Harris (Lachy Hulme), Warwick Steven Cregg, and Simon McCann, for killing Amr's three eldest sons during the Dhofar Rebellion. Danny must videotape their confessions and make their deaths look like accidents, and he must do it before the terminally ill Sheikh dies. This will allow the Sheikh's fourth son, Bakhait (Firass Dirani), to regain control of the desert region his father had ruled. If Danny fails, Hunter will be killed by the Agency. Danny reunites with Davies and Meier. They agree to help him in exchange for a share of the money.
As Danny and Meier sneak into the house of their first target, Steven Harris, in Oman, Davies questions local bar patrons about former SAS members. This is reported to the Feathermen, a secret society of former operatives protecting their own. Their head enforcer, Spike Logan (Clive Owen), is sent to investigate.
After Harris has confessed on videotape, Danny and Meier take him to the bathroom. Their plan is to break his neck using a hammer with tiles similar to those of the bathroom floor to make it appear that Harris slipped and broke his neck. Danny is distracted by the arrival of Harris's girlfriend and when he returns to the bathroom he finds that Meier was forced to kill Harris hastily in a struggle.
Back in London, Davies discovers the second target, Warwick Cregg, preparing for a long nighttime march in wintry weather at a local SAS base. Davies pretends to be a civilian having car problems outside the base's fence, allowing Danny to infiltrate the base. There he drugs Cregg's coffee to induce shock and cause Cregg to die of hypothermia during the march. Danny, in uniform, follows Cregg on the march, and a delirious Cregg confesses on videotape to Danny before he dies.
Going to their last target, Simon McCann, currently a mercenary, they rig a truck to respond to remote control with the help of a new and inexperienced team member, Jake (Michael Dorman). As McCann is on his way to a fake job interview, Meier and Jake take control of the truck from another car and cause it to move in front of McCann's car, killing him. However, Logan and his men were watching over McCann. A gun fight in the docks ensues, and Meier is accidentally killed by Jake due to his lack of experience.
Danny returns to Oman and gives the Sheikh the last taped confession, which he has faked. Hunter is released and returns to his family, while Danny heads back to Australia and reunites with his girlfriend, Anne (Yvonne Strahovski), a childhood acquantance. Soon he is informed by the Agent that there is one last man who participated in the Sheikh's sons' murders and that this man, Ranulph Fiennes, is about to release a book about his experiences as a member of the SAS.
Danny tells Anne to go to France with Hunter to protect her while he carries out the last job. The Sheikh's son confirms that Harris was an innocent man. Logan, meanwhile, traces Danny through the Agent and sends a team to protect the author, but Jake distracts them, allowing Danny to infiltrate the building and shoot the author. He chooses to only wound the author, however, but takes pictures that appear to show him dead. Logan chases and captures Danny, taking him to an abandoned warehouse, but he is interrupted when an agent from the British government (who has been pressuring the Feather Men to call off Logan) arrives and reveals that the British government is behind the events because of the Sheikh's valuable oil reserves. A three-way battle ensues, with Danny escaping and Logan shooting the government agent.
Danny and Hunter head to Oman to give the Sheikh the pictures. However, Logan arrives first and confronts the Sheikh, telling him that the pictures are fake and then stabbing him to death. The Sheikh's son does not care and gives the money, which was intended for Danny and Hunter to Logan. Hunter spots Logan leaving, and they chase after him, along with the Sheikh's men.
After stopping the Sheikh's men, Danny and Hunter confront Logan on a desert road. Danny says that Logan can keep the money (though Hunter takes some of the money for his expenses and his family). They give Logan the remainder, telling him that he'll need it to start a new life away from the government after killing the Sheikh and acting against the wishes of the Feather Men and the British government. Danny says that it's over for him and that Logan must make up his own mind. They leave him there, saying they'll send a cab for him from the airport.
In the final shot, Danny meets with Anne in France to start anew.