Susan Morrison (Teri Polo), recently divorced from her husband Frank (John Travolta) who is a struggling boat builder, is getting married to an industrialist who is younger and wealthier. His name is Rick Barnes (Vince Vaughn). Danny (Matt O'Leary), Susan and Frank's 12 year old son is clearly unhappy with his mother re-marrying. The revelation that Susan and Rick are expecting a baby, worsens the situation.
Susan asks Frank to allow Rick to go sailing with him and Danny, to help Danny bond with and accept Rick as a stepfather.
After the marriage and a brief improvement in Danny and Rick's relationship, Danny begins to dislike him once again. During a game of catch between the two, Rick clearly becomes agitated with Danny's ambivalent playing style and starts criticizing him harshly, as well as dealing some hard throws toward Danny.
Danny learns about the new baby when he overhears Susan and Rick talking about it. He's very upset and wants to go talk to his father. Susan tells him no, so he sneaks out of his room and stows away in Rick's Chevy Suburban, as Rick announced he needed to go take care of some business downtown, and that was close to where Frank lived.
Rick drives to a small motel and picks up a man named Ray Coleman (Steve Buscemi), who'd earlier attended the wedding unannounced, claiming to be an ex-business associate of Rick. Rick and Ray had also met earlier at the motel and had a discussion about their time in prison together and some money that Rick owed Ray. Rick drives Ray to a brickworks warehouse, telling Ray that he had hidden the money there, but once inside the building, Rick stabs Ray to death and he places the body in a kiln and incinerates it.
Danny witnesses all this and was nearly discovered, first by Ray and then by Rick, but he manages to escape outside in the rain and runs to Frank's house. Frank hears the story and takes Danny to the police department to report the murder.
Rick is widely considered a pillar of the local community, as he has invested plenty of money in the area, whereas Danny has a history of lying and misdemeanors. Plus, there's no evidence that Ray Coleman existed or had been murdered. So, Rick is not arrested.
Frank, however, believes his son because Danny has never lied to him. Frank also had initial suspicions about Rick, stemming from Rick's notable unease around Coleman at the wedding ceremony.
Because of Danny's continuing fear of Rick, and the lack of serious interest by police Sgt. Edgar Stevens (Ruben Santiago-Hudson) in any further investigating, Frank does some investigating of his own. He tracks down the motel where Ray Coleman had stayed, he learns of Coleman's criminal past which leads him to Rick's real name and criminal past. Frank learns that Rick's real name is Jack Parnell and he's a criminal who was acquitted while his partners, which included Coleman, were convicted.
Rick realizes that Frank has been snooping around and is getting too close for comfort, so he sneaks up on Frank at the boat shop and clubs him unconscious, then sets the boat shop on fire. He accidentally sets his shirt on fire too, burning part of his arm. Frank regains consciousness in time to escape the conflagration.
Danny and Susan watch a story about the boat house fire on the news, and Susan is surprised to see Rick in the bathroom treating the burn on his arm. She sneaks back to Danny and tells him to get ready to leave. Rick encounters them on the way out and asks where they are going. Susan tells him that they just learned about the boat shop fire and Danny wanted to go check on his father. Rick offers to drive, but Susan says Danny would prefer he not go with them.
Just as Danny and Susan are in the car in the garage, the phone in the house rings. It's Frank calling. Rick answers but Frank hangs up the phone. Rick sees who it was on the caller ID. He rushes out to the garage where Susan is taking to Frank on her cell phone. Rick pulls Susan out of the car and gets in the driver's seat. Susan slams the car door on his arm and she and Danny escape into the house. They lock all the doors and try to call the police, but Rick has disconnected the phone line. He then crashes through a window into the house and struggles with Susan, knocking her down and out.
Rick is preparing to take Danny hostage and make his escape, but Frank arrives and they engage in a brawl in the garage. Rick seems to have the upper hand until Danny, even though his hands are tied behind his back, is able to catapult his body into the back of Rick's legs, knocking him off balance so that his next swing at Frank with a crow bar instead hits the electrical fuse box and he is electrocuted.
Susan experiences a miscarriage during the struggle with Rick, so there will be no daily reminder for her and her family of the bad experience they all had.