Small-time pool hustler “Fast Eddie” Felson travels cross-country with his partner Charlie to challenge the legendary player “Minnesota Fats”. Arriving at Fats’ home pool hall, Eddie declares he will win $10,000 that night. Fats arrives and he and Eddie agree to play straight pool for $200 a game. After initially falling behind, Eddie surges back to being $1,000 ahead and suggests raising the bet to $1,000 a game; Fats agrees. He sends out a runner, Preacher, to Johnny’s Bar, ostensibly for whiskey, but really to get professional gambler Bert Gordon to the hall. Eddie gets ahead $11,000 and Charlie tries to convince him to quit, but Eddie insists the game will end only when Fats says it is over. Fats agrees to continue after Bert labels Eddie a “loser.” After 25 hours and an entire bottle of bourbon, Eddie is ahead over $18,000, but loses it all along with all but $200 of his original stake. At their hotel later, Eddie leaves half of the remaining stake with a sleeping Charlie and leaves.
Eddie stashes his belongings at the local bus terminal, where he meets Sarah Packard, an alcoholic who is supported by her father, attends college part-time, and walks with a limp. He meets her again at a bar. They go back to her place but she refuses to let him in, saying he is “too hungry”. Eddie moves into a rooming house and starts hustling for small stakes. He finds Sarah again and this time she takes him in, but with reservations. Charlie finds Eddie at Sarah’s and tries to persuade him to go back out on the road. Eddie refuses and Charlie realizes he plans to challenge Fats again. Eddie realizes that Charlie held out his percentage and becomes enraged, believing that with that money he could have rebounded to beat Fats. Eddie dismisses Charlie as a scared old man and tells him to “go lie down and die” by himself.
At Johnny’s Bar, Eddie joins a poker game where Bert is playing, and loses $20. Afterward, Bert tells Eddie that he has talent as a pool player but no character. He figures that Eddie will need at least $3,000 to challenge Fats again. Bert calls him a “born loser” but nevertheless offers to stake him in return for 75% of his winnings; Eddie refuses.
Eddie humiliates a local pool shark, exposing himself as a hustler, and the other players punish him by breaking his thumbs. As he heals, Sarah cares for him and tells him she loves him, but he cannot say the words in return. When Eddie is ready to play, he agrees to Bert’s terms, deciding that a “25% slice of something big is better than a 100% slice of nothing”.
Bert, Eddie, and Sarah travel to the Kentucky Derby, where Bert arranges a match for Eddie against a wealthy local socialite named Findley. The game turns out to be three-cushion billiards, not pool. When Eddie loses badly, Bert refuses to keep staking him. Sarah pleads with Eddie to leave with her, saying that the world he is living in and its inhabitants are “perverted, twisted, and crippled”; he refuses. Seeing Eddie’s anger, Bert agrees to let the match continue at $1,000 a game. Eddie comes back to win $12,000. He collects his $3,000 share and decides to walk back to the hotel. Bert arrives first and after an awkward exchange, kisses the unamused Sarah; but the scene implies she sleeps with him. Afterwards, she scrawls “PERVERTED”, “TWISTED”, and “CRIPPLED” in lipstick on the bathroom mirror. Eddie arrives back at the hotel to learn that she has killed herself.
Eddie returns to challenge Fats again, putting up his entire $3,000 stake on a single game. He wins game after game, beating Fats so badly that Fats is forced to quit. Bert demands a share of Eddie’s winnings and threatens that Eddie will be injured unless he pays. But Eddie says that if he is not killed he will kill Bert when he recovers; invoking the memory of Sarah, he shames Bert into giving up his claim. Instead, Bert orders Eddie never to walk into a big-time pool hall again. Eddie and Fats compliment each other as players, and Eddie walks out.