Russ Duritz works as an image consultant, but he is impolite to people and has had a strained relationship with his father. One day, he sees a red plane flying over his head but no one else seems to have seen it.
Later, he and his assistant Amy meet a stadium manager named Bob Riley. Riley had promised to set aside 5% of the ticket sales to fund a baseball camp for disadvantaged children, but he actually kept the money. So, Russ, has them make a video of some children throwing a pie at Riley, to get him off the hook. Afterward, in a Japanese restaurant, Amy feels that the video is unethical, and Russ throws the tape away at first, but he secretly retrieves it off screen.
When Russ gets home he sees a shadow of a boy, and he immediately calls his secretary to change his house security system. She replies that he is being paranoid and that it could be a neighbor's child. He hears someone inside his house and gets out of bed to investigate when he finds a toy plane with the name Rusty on it on his front step which he assumes had been left there by his father for him. Russ goes back to bed and wakes up hearing noises again. He then walks around the house until he finds the boy and begins a chase through the house. They go to the streets and reach the airport where he sees the boy entering a "Skyway Diner". He tries to catch him there but no one inside has seen the boy. When Russ walks outside looking for the boy, he turns around to look back at the diner, but it has vanished. He thinks he is hallucinating again.
So the next day Russ goes to a psychiatrist and tells her that he only needs five minutes and a powerful medicine to stop his hallucinations. After refusing the whole psychology session he gets his pills and leaves. He turns the television on and watches the news, but after he goes to the kitchen the channel has changed to Ed, Edd n Eddy. He then surprises the boy in his couch eating his popcorn. He asks the boy who he is and what has he come for, to which the boy replies to take his toy plane, but that when he saw the television and the popcorn he couldn't resist. Russ then asks the boy his name and finds out it's his own. Both begin comparing memories and their birthmarks and figure out that Rusty is none other than Russ as a kid.
Rusty then starts asking Russ things such as if he has a dog named Chester, whom Rusty has dreamed of owning, if he has become a pilot, and if Russ has a wife. Russ replies that he can't handle dogs with his constant traveling, that he is not a pilot but an image consultant, and that has no wife. Rusty tells him that he dislikes his future. The next day, when Amy finds out about the boy, she likes him and wants to take him to eat ice cream but Russ makes fun of his weight. Rusty then recalls some bullies bothering him the same way, so Russ brings him to a client's boxing ring and teaches him to fight.
Amy starts wondering about Russ and Rusty's similarities and begins to think they are father and son. After shouting at Russ for hiding such a secret from her, both Russ and Rusty finally decide to tell her the truth, though they end up arguing instead. Amy watches Rusty and Russ argue and sees the two fighting, arguing, gesturing the same way, at which she faints. Later, Russ and Amy talk about who will take care of him during his client's wedding and Amy proposes to take him but Russ says he will humiliate him. Rusty falls during the wedding ceremony, and at the reception, he asks Amy to marry him. She thinks it's Russ sending her the message.
When she finds out that Russ saved and aired the Riley tape, she gets mad at him. She tells him that he should try to learn more from Rusty and leaves disappointed. Russ finally decides to cancel all of his appointments and spend an afternoon trying to find out why Rusty is there and what he needs to fix from the past. He recalls a fight his younger self have on his birthday. That makes them go back to 1968. Rusty wins that fight and saves the life of a three-legged dog called Tripod, but then Russ remembers that the fight itself wasn't the worst part of the day; the worst is yet to come. He remembers that his mother who was sick came to school for him. When they get home, Rusty's father immediately gets his mother back inside, as the doctor had ordered her against leaving the house, and then angrily goes to his son and accuses him of making his mother sicker by getting into the fight. Rusty cries while in an attempt to tell his father he found the screw he lost, but his father refuses to listen to him and tells him to stop crying, while rubbing Rusty's eyes painfully, causing Rusty to develop a lifelong eye twitch to suppress his tears. Rusty's father then tells his son to grow up before quickly heading back inside to tend to his wife. Once their father has gone back inside Russ tells Rusty that his mother will die before his next birthday, then comforts him. Russ tells Rusty that he wasn't responsible for the death of his mother, and that his father had raged at him simply because he was scared about the huge responsibility of having to raise his son alone.
They go to the "Skyway Diner" and keep talking about the fight, acknowledging that they've failed to change the outcome of Rusty's eight birthday by winning the fight, but congratulating each other on their birthday. Suddenly a dog comes in and goes directly to Rusty. They hear a man call the dog Chester, they both follow him and find out that the red plane is Russ' plane and that the man with the dog is Russ's older self. They realize that they really changed the future and that Russ would, in late middle age, be a pilot, have Amy as his wife, have three children and a dog named Chester. Then Russ returns to his time, arranges plans to see his dad to reconcile with him, buys tickets to Hawaii for his secretary, and goes to Amy's house with a puppy. The movie ends as she invites him in.
Bruce Willis as Russ Duritz
Spencer Breslin as Young Rusty
Emily Mortimer as Amy
Lily Tomlin as Janet
Chi McBride as Kenny
Jean Smart as Deidre Lefever
Dana Ivey as Dr. Suzanne Alexander
Zach Redo as James
Brian McGregor as Vince
Reiley McClendon as Mark
Brian Tebbits as Herbert
Brian McLaughlin as George
Steve Tom as Bruce, Lawyer
Larry King as himself
Jeri Ryan as herself
Nick Chinlund as himself
Matthew Perry as Mr. Vivian (uncredited)
Daniel von Bargen as Sam Duritz
Elizabeth Arlen as Gloria Duritz
Melissa McCarthy as Sky Diner Waitress