A History of Violence

Tom Stall (Viggo Mortensen) is a diner owner who lives in the small town of Millbrook, Indiana, with a loving wife Edie (Maria Bello), teenage son Jack (Ashton Holmes), and daughter Sarah. One night, two men attempt to rob the restaurant. When a waitress is threatened, Tom deftly kills both robbers with surprising skill and precision. He is hailed as a hero by his family and the townspeople, and the incident makes him a local celebrity. Tom is visited by scarred gangster Carl Fogarty (Ed Harris), who alleges that he is actually a gangster named Joey Cusack who had dealings with him in the Irish Mob in Philadelphia. Tom vehemently denies this, but Fogarty remains persistent and begins to stalk the Stall family. Under pressure from Fogarty and his newfound fame, Tom's relationships with his family become strained.
Following an argument with his father over the use of violence on a bully at his school, Jack runs away. He is caught by Fogarty, who, with Jack as his hostage, goes with his men to the Stall house and demands that "Joey" return to Philadelphia with them. After the gangsters release Jack, Tom is slow to join them in their car, so they attempt to force him to cooperate. Tom kills the two henchmen with the same precision he used against the robbers, but Fogarty shoots Tom as Tom is aiming at him. As Fogarty is standing over Tom, preparing to kill him, Tom finally admits he is indeed Joey. However, before Fogarty can deliver a coup de grÃ¢ce, Jack kills Fogarty with a shotgun.
At the hospital, Edie confronts Tom, claiming that while he was attacking Fogarty's men, she saw "the real Joey" that Fogarty was talking about. Tom shocks Edie by admitting that he is actually Joey Cusack, and that he has killed for both money and pleasure. He tells Edie that he ran away from Philadelphia to escape his violent criminal past. This admission deepens the tensions in their marriage.
After Tom gets out of the hospital, Sam (Peter MacNeill), the local sheriff, pays a visit. Sam expresses confusion about everything that has happened. He tells Tom and Edie that these mobsters wouldn't go to all this trouble if they weren't sure they had the right man. Just when Tom is about to confess, Edie lies to Sam, claiming that Tom is who he says he is, that their family has suffered enough. At a loss for words after Edie breaks down into tears, Sam leaves. Edie and Tom then start slapping and hitting each other, their fight eventually culminating in violent sex on the stairs; this is in contrast to the tender and romantic sex they were shown having in the beginning of the film. Afterward, Edie and Jack continue to further distance themselves from Tom, leaving him isolated. He receives a call from his brother Richie Cusack (William Hurt), who also demands his return to Philadelphia, or else he will come to Indiana to find him. After traveling to meet his brother, Tom learns that the other mobsters whom he had offended in Philadelphia took out their frustrations on Richie, penalizing him financially and delaying his advancement in the organization. Tom offers to make peace, but Richie orders his men to kill his brother. Tom manages to kill most of the guards and escape. As Richie and his last henchman are hunting for him, Tom surprises and dispatches both.
Tom returns home, where the atmosphere is tense and silent as the family sits around the dinner table. The future of his marriage and his life as Tom Stall are uncertain, but Jack and Sarah indicate their acceptance of their father by setting a plate for him and passing him some food. The film ends as Edie looks up at Tom, leaving their future in question.

Question: Who kills Fogarty?
Answer: Jack.