The film opens at the CIA Headquarters in Langley, VA. Agent Vivi DeLay (Amber Heard) meets with the CIA director and another man to discuss their target, Wolfgang Braun, aka "The Wolf" (Richard Sammel). The man is attempting to sell arms to terrorists along with his associate, The Albino (Tomas Lemarquis). The men assign Vivi to take both of them down. She asks them which agent they have on the ground. His name is Ethan Renner.
We meet Ethan (Kevin Costner) in a hotel in Paris where he and another agent, Yasmin (Mai Anh Le), are set to take down The Albino, set to make a deal with Serbians. Ethan has already killed the buyers, and he makes a quick and swift exchange with The Albino as he swaps briefcases containing secret codes. He goes to hand them over to other agents in a van, when his phone rings to remind him it's his daughter Zoey's (Hailee Steinfeld) birthday. He runs to make a call on a payphone and uses his watch as collateral with a nearby vendor to get change. He calls Zoey but gets her voice mail. In the hotel, Yasmin's identity is compromised when The Albino recognizes her. He drags her to an elevator and waits til it comes down so it decapitates her. His cohorts shoot at the agents in the van, leading to a gunfight from the lobby to outside the hotel. Ethan runs after The Albino and kills his men before chasing the villain. Ethan starts getting weak and groggy until he catches up to The Albino. He falls to the ground before shooting The Albino in the foot. He limps away as Ethan loses consciousness.
Ethan wakes up in the hospital to a doctor who tells him that he has cancer and it's spread to his lungs. He gives Ethan about 3-5 months left.
Ethan returns to his apartment to find that there's a family living there. The patriarch, Jules (Eriq Ebouaney), warmly welcomes Ethan back, telling him they are refugees seeking a new place to live. He goes to complain about it, but is told that if he forces the family out, he can get arrested. Ethan goes back and takes out his gun in front of Jules, but then relents and says he can stay until his eldest daughter gives birth to her child.
Ethan calls his ex-wife Tina (Connie Nielsen) as she's meeting up with friends. She is hesitant to meet with him until he says it's urgent that they get together. They go together to sign his will and he tells her that he is dying and he doesn't want Zoey to know. He wants to meet up with her, and Tina tells him only on the condition that he is officially done working for "them". Ethan says yes.
The two of them go meet Zoey at her school. Her reunion with her father is awkward and she seems less than interested in talking to him. A handsome older boy comes over to Zoey, and she introduces him as Hugh (Jonas Bloquet). He is polite to Ethan when she introduces them, though he is understandably on the fence about it. Hugh leaves and Ethan presents Zoey with a purple bike, thinking that is still her favorite color. She opts to take the metro with her friends, leaving Ethan to ride the bike himself.
Ethan stops at a stand and is met by Vivi. She drops Zoey's name and shows him his watch that he left by the hotel. She gets him to ride with her, telling him to work for her. He refuses until she says she has an experimental drug that can save his life. Ethan reconsiders, and Vivi tells him the job is to find The Wolf and kill him.
Vivi takes Ethan to a hotel to find a man that can give them the whereabouts of The Albino's accountant. She tells Ethan there's only one guy in there, but after he busts into the room of their target, he finds five guys. He and Vivi end up killing all of them when nobody gives them any info. In the elevator, Ethan tells her he will only continue the assignment if he is given 50 grand and a $1 million life insurance policy. She complies and gives him a shot of the drug.
We see The Albino meeting up with a man. He gives this man a photo of Ethan to keep on him.
Ethan goes to Zoey and Tina's apartment and hears Zoey scream. Thinking she's in danger, he breaks the doorknob and busts in, only to find that she is upset over a bad hairdo. Tina is mad at Ethan since he earlier promised to cook dinner, yet he is three hours late. She is heading to London the next day on business and decides to call a sitter to look after Zoey, but Ethan insists that she let him take care of her.
Later, Ethan starts to feel dizzy and he faints. He calls Vivi and tells her he's hallucinating. She tells him to drink vodka to ease himself. He does just that.
Tina leaves the next day, and Zoey comes in wearing a wig with a shade of red. She sees Vivi calling Ethan's phone, so he tells her it's her boss. She puts "I Don't Care" by Icona Pop as Ethan's ringtone for whenever she calls. Ethan once again tries to get Zoey to ride the bike to school, but she walks and drops the wig.
Ethan meets with Vivi again. She gives him the check she promised him and reminds him to keep his heart rate low. She has Ethan go look for a car salesman named Mitat Yilmaz (Marc Andreoni). Ethan goes to the dealership, insults Mitat's employees and knocks them out, then waits in Mitat's office until he returns. Ethan threatens Mitat's family and takes him back to the apartment, until he gets a call from Zoey's school, urging him to go speak to the principal. He takes Mitat with him and stuffs him in the trunk.
Ethan and Zoey meet with the principal. He learns that Zoey hit another classmate. He asks, "Open palm or clenched fist?" As they leave, Zoey tells Ethan it was because the girl she hit was teasing a girl from Pakistan. Ethan says he's not mad and tells her it's an effective way to get rid of a bully. Mitat starts making a fuss in the trunk, forcing Ethan to go punch him and tell him to shut up. Zoey leaves him, agitated by his behavior and his constant coughing. However, she later calls him back to apologize and asks him to meet her at her favorite spot, a little theme park where her favorite ride is the Flying Chairs. Although Ethan initially goes to continue his search for the accountant, he leaves to meet with Zoey. They go on the ride and have hot chocolate after. She tells him she has to go and study with her lab partner.
Ethan goes to a store and is attacked by a man wielding a shotgun. He blasts Ethan, but he rises unharmed (he was most likely wearing a vest), and the two of them fight. The man nearly kills Ethan by stabbing him in the neck, but the man is shot and he dies. Ethan then notices the man was holding a photo of Ethan himself.
Ethan goes home to see on Zoey's computer a message from a friend saying she'll meet her at the Tattoo Gallery. Concerned, Ethan rushes to this place and finds a car with Zoey's bag. He breaks into it and finds a flyer from a place called Spider. He goes to Mitat's house and asks the man's twin daughters what Spider is. They tell him it's a soiree house. Ethan goes to Spider, a night club, and sees Zoey drinking with friends. He starts getting dizzy again, and has a swig of vodka to ease up. He follows Zoey near the bathroom and sees three guys harassing her. Ethan is held back by a friend of the boys, but he gets into papa wolf mode and kicks all their asses before getting Zoey out of there.
Zoey wakes up the next morning with no memory of the previous night. She's still wearing her dress, and she is about to go to school until Ethan tells her not to go like that. He insists on her riding the bike to school, but she angrily reminds him that he never taught her how to ride. He spends the morning teaching her, earning applause from onlookers. Zoey later tearfully asks him why he's been away for a long time. She thinks he has another family with another daughter, but he assures her that is not the case. As they continue to hang out, Zoey admits that she hit the girl at school because she was hitting on Hugh. They end up meeting Hugh as he is going to take Zoey to school.
Ethan locates the accountant, Guido (Bruno Ricci), as he is escorted through the streets. Ethan shoots a tear gas grenade at the car and takes Guido before blowing the van up. He takes Guido to his apartment to exchange the briefcase with codes he had earlier with codes set to trigger explosives that The Wolf and The Albino are in possession of. Zoey calls to tell Ethan that she is going to cook dinner for Hugh, and she wants to make a vegetarian dish. Ethan puts Guido on the phone to tell Zoey about a spaghetti sauce recipe that his mother used.
That evening, Ethan comes home to find that Jules's daughter is going into labor. She gives birth to a healthy baby girl, and she decides to name it after Ethan due to him allowing them to stay in his home. Jules says they are to leave as promised, but Ethan insists they can stay as long as they want. Jules says the family prefers a smaller home to stay closer to each other.
Ethan goes back to Zoey's home and learns that Hugh asked her to prom, but she says she can't dance. Ethan decides to help her out, just as Tina comes home. She watches them dance, bringing tears to her eyes. They have dinner as a family, and Tina tells Ethan later that he ought to tell Zoey about his condition sooner or later. They end up sleeping together.
The next morning, Vivi calls Ethan to tell him The Albino is staying at the Grand Hotel. Ethan heads there and spots The Wolf. The villains get in a car driven by Mitat. Ethan chases after them, slamming into the car until he pushes them all over a footbridge. The Wolf and The Albino flee, and Ethan spares Mitat so he can return to his family. Ethan chases the villains into the subway, where he starts to get a nosebleed and he begins to feel dizzy. Before he can shoot The Wolf, The Albino drags a barely conscious Ethan toward the train tracks. He waits for the train to come even as The Wolf yells at him to kill Ethan. Ethan regains enough motion to push The Albino in front of the train just as it passes. He passes out and The Wolf flees. He wakes up to see Vivi brought him to her place. She reminds him of The Wolf's escape, but tells him the results of his treatment turned out positive with the drug.
Ethan, Zoey, and Tina go to meet with Hugh and his family. His father introduces Ethan to his business partner...The Wolf. They recognize each other and uneasily shake hands. Hugh's parents escort them all into a club. Tina eventually realizes that Ethan is working an assignment. She thinks he's been lying to her but he assures her that he hasn't been lying. The Wolf's men shoot at Ethan, and he runs after them. He kills the goons before cornering The Wolf in an elevator. He shoots the wires on the elevator, causing it to fall and crash to the bottom. Meanwhile, Hugh and Zoey find a private room where they dance and share their first kiss.
The Wolf crawls out of the elevator, and Ethan finds him. He starts to feel weak again, unable to shoot him. He drops the gun, which The Wolf reaches for until Vivi comes in and pushes it to Ethan to finish the job. Thinking about Tina and Zoey, he refuses and drops the gun. Vivi grabs it and shoots The Wolf herself.
Sometime later, Ethan is still staying with Zoey in a house near a beach. He's setting up a Christmas tree (after thinking he wouldn't live to see Christmas), and we hear him talking to Tina, saying there have been bad days, but they are still trying to keep their relationship well. Tina arrives in person, and Ethan acknowledges to her that he hasn't always been there for her and Zoey like he should have been. Zoey comes up to invite her mom in so Ethan can make them hot chocolate. Ethan goes into another room while Tina and Zoey sit together. She asks her mom if Ethan is going to stick around now. Meanwhile, Ethan finds a box with a large syringe and a note from Vivi wishing him a Merry Christmas. She has given him the drug so he can continue to live some more as well as spend time with his family. In the distance, Vivi stands watching the family in their home.