It's been a tough time in the Morrison household. Frank (JOHN TRAVOLTA), a custom shipbuilder, now lives with his girlfriend, Diane (SUSAN FLOYD), since he and his ex-wife, Susan (TERI POLO) have been divorced for a few years. The familial strife has led their 12-year-old son, Danny (MATT O'LEARY) to misbehave, and the fact that Susan is about to marry Rick Barnes (VINCE VAUGHN), a well-to-do entrepreneur, has only exacerbated the problems since the boy doesn't like him.
Neither does Frank, but he encourages Danny to try, and thus both attend Susan and Rick's wedding as a good faith gesture. It's there that Frank notices Rick acting adversely to seeing Ray Coleman (STEVE BUSCEMI), a seedy looking fellow who shows up and obviously isn't welcomed. Frank tries to figure out why Rick reacted the way he did, but is sidetracked when Danny later reports that he spotted Rick kill a man in his truck while the boy was hiding in the backseat.
Due to Danny's previous bouts with lying and run-ins with the law, no one - including Detective Edgar Stevens (RUBEN SANTIAGO-HUDSON) - believes him, but Frank's suspicions are aroused since the boy has never lied to him. From that point on, and as Rick acts menacingly toward Danny to keep quiet about what he knows lest he harm him or his father, Frank sets out to discover what he can about Rick as well as Danny's tale of murder.