U.S. Marshals

Two Diplomatic Security Service (DSS) agents are killed while trying to intercept a briefcase exchange taking place in a United Nations parking garage. The murders are caught on a security camera, but the criminal escapes with top secret information.
Months later, tow truck driver Mark Warren is arrested for an illegal weapons possession charge following a vehicular collision in Chicago. Through a fingerprint check, the police determine that he is actually federal fugitive Mark Roberts, wanted for a homicide. Roberts boards a prisoner transport aircraft back to New York, sharing the flight with Deputy U.S. Marshal Samuel Gerard (Tommy Lee Jones), who is escorting prisoners unrelated to Roberts' case.
Roberts thwarts an assassination attempt by a Chinese prisoner with an improvised firearm, but the bullet pierces a window and depressurizes the cabin, forcing an emergency landing which leads to a crash in Southern Illinois. Gerard discovers Roberts has fled the crash site. DSS Special Agent John Royce is assigned to join Gerard's team to hunt Roberts.
Roberts flees to New York City. There, he secures money, weapons and fake identification. Roberts also begins conducting surveillance on a Chinese diplomat named Xiang Chen. In Chicago, Gerard and the Marshals pursue several leads, including Roberts' girlfriend Marie Bineaux, as well as the airplane mechanic who hid the zip gun, whom the Marshals find murdered by Chen.
Gerard and his colleagues watch the surveillance footage of the murders in the parking garage and realize that Roberts acted in self-defense and was wearing gloves; thus he could not have been identified by fingerprints at the scene as was earlier claimed. Confronted with the evidence, DSS Director Bertram Lamb informs Gerard that Mark Roberts is in fact Mark Sheridan, a trained operative and a veteran Force Recon Marine, that went rogue during an investigation to find a mole within the U.S. State Department that had been selling covert secrets to China. Chen was the contact delivering the money to Sheridan for the information and when DSS agents tried to apprehend him, Sheridan killed them in resistance and fled the scene.
Eventually, Gerard and his team catch up with Sheridan in Queens Hill Cemetery where he meets with, and threatens to expose, DSS Special Agent Frank Barrows as one of the conspirators who framed him. Chen tries to assassinate Sheridan as he leaves the cemetery, but inadvertently kills Barrows instead. Sheridan flees to a retirement home followed by Gerard, Royce and Deputy Marshal Noah Newman. Meanwhile, Chen is caught and detained by Deputy Marshals Savannah Cooper and Bob Biggs.
At the senior care facility, Newman overhears a physical struggle and walks into a room where he witnesses Royce holding Sheridan at gunpoint. Royce suddenly shoots Newman with his gun and later lies to his associates, claiming Sheridan shot Newman. Sheridan escapes by jumping from the building onto the roof of a passing train. Newman dies of his gunshot wound.
After retrieving fingerprints from an abandoned vehicle at a marine loading dock, Gerard tracks down Sheridan on a freighter bound for Canada. During a scuffle between Sheridan and Gerard aboard the vessel, Royce shoots Sheridan, injuring him. Sheridan is later taken into custody. Gerard begins to suspect Royce may be the mole when he notices the firearm that shot Newman had its serial number filed off in an attempt to hide it was actually Royce's own gun earlier.
Left alone to guard Sheridan's hospital room, Royce wakes Sheridan up to murder him just as Gerard steps in and kills Royce first. After leaving the hospital, Sheridan's charges are dropped as he is exonerated and released from custody.

Question: Who shot Sheridan?
Answer: Royce; Royce