Donald "Sully" Sullivan (Paul Newman) is a worn yet spry 60-year-old hustler and con-man living in the peaceful, snowy northern New York state village of North Bath. He works free-lance in the construction business, usually with his dim-witted friend Rub Squeers (Pruitt Taylor Vince) by his side. He is often at odds with Carl Roebuck (Bruce Willis), a local contractor, suing him at every opportunity for unpaid wages and disability. Sully's one-legged lawyer Wirf Wirfley (Gene Saks) is inept, and his lawsuits are repeatedly dismissed. As a way to irritate him, Sully flirts with Carl's wife Toby (Melanie Griffith) openly at every opportunity (which she enjoys). He is a regular at the Iron Horse Saloon, where he often has drinks and plays cards with Wirf, Carl, Rub, and the town sheriff.
A running joke is the repeated theft of Carl's snowblower. Sully steals it to get back at Carl for his latest failed lawsuit. Carl steals it back, placing it in the yard at his construction business guarded by his doberman pinscher guard dog. Sully, after drugging the dog, steals it a second time. Carl takes it back a final time, and leaves the dog, who is now skittish due to his drugging, at Sully's childhood home for him to find.
Sully is a tenant in the home of the elderly Miss Beryl Peoples (Jessica Tandy), whose banker son Clive Peoples Jr. (Josef Sommer) strongly urges her to kick him out and sell the house. Family complications of his own develop for Sully with a visit from Peter (Dylan Walsh), his estranged son who is an unemployed college professor at odds with his wife. While Peter and Sully try to reconstruct their relationship, Sully begins a new one with his young grandson Will (Alexander Goodwin). Peter's sudden everyday presence does not sit well with Rub, but Sully tells him that although Peter is his son, Rub is still his best friend.
Meanwhile, Clive is on the verge of a lucrative deal to build an amusement park in North Bath. However, the deal unexpectedly falls through when the promoter turns out to be a con man, and Clive quietly skips town in shame since he used his bank's resources to help finance the amusement park.
After being jailed for punching a police officer named Raymer (Phillip Seymour Hoffman) who has been persecuting him, Sully's luck seems to be all bad. But his son, Peter, bails him out of jail and both him and Sully's grandson start to warm up to him.
Sully later attends the funeral of an elderly resident named Ms. Hattie (Alice Drummond), an Alzheimer's stricken elderly woman whom he frequently sees wondering the streets of the town in a daze and whom Sully always helps walk her back to her house where her children are caring for her her.
Soon, Sully's fortune takes a turn for the better when his horse racing trifecta ticket wins a some of a few thousand dollars. Even the lovely Toby expresses a willingness to leave Carl, mostly due to his constant womanizing, and run away with Sully to Hawaii. Sully realizes he can't leave his grandson and thanks Toby for considering him, just before she leaves for the airport.
In the final scene, Sully is pretty much back where he began, boarding at Miss Beryl's. But now he is a little richer, both financially and in his soul, he's a new dog owner, and he has become the picture of contentment.