In the fall of 1957, Toby Wolff (Leonardo DiCaprio) and his mother Caroline (Ellen Barkin) are driving from Florida to Utah in search of better luck after Caroline was beat up by her latest boyfriend. Caroline has bought a geiger counter and intends to get rich on uranium in Salt Lake City even though no uranium has been found there. Toby tells us that his father left his mother a long time ago and took Toby's older brother with him. In Salt Lake, Caroline gets a job and Toby starts a new school. Soon Caroline's ex, Roy (Chris Cooper), turns up after tracking Caroline down. He gives Toby a rifle as a present and tries to reestablish his relationship with Caroline, but when he becomes too controlling for her, Caroline decides to pack up and leave town on a Greyhound.
Six months later in Seattle, Toby is skipping school, calls himself Jack and has Elvis hair. He and his two friends watch Superman on TV and talk about sex. Toby is living in a boarding house with Caroline, who is dating an attractive and well-mannered man, Dwight Hansen (Robert De Niro). He invites Caroline and Toby to stay the weekend at his home in the small town Concrete. They go to a turkey shoot; Dwight had promised Toby a chance to shoot, but it turns out the rules forbid it. Instead, Caroline enters the shoot as the only woman and ends up winning much to Dwight's dismay. Dwight has three children of his own, and he praises Concrete to Caroline hoping to persuade her to stay.
Back in Seattle, Toby is caught carving obscene words into a bathroom wall and is suspended. Desperate and short on cash, Caroline agrees to Dwight's suggestion that Toby should live with him for a while. Dwight picks him up, and on the drive Dwight shows his nasty side for the first time, threatening Toby with what he will do to him if he doesn't behave. He has Toby's hair cut, enrolls him in the boy scouts and gets him a paper route. Soon Caroline and Dwight are married. It soon turns out there are many things they don't see eye to eye on, starting with their wedding night. Dwight has a loose temper and has no time for objections. Toby protests when Dwight keeps the money from Toby's paper route and won't buy him gym shoes, but Caroline doesn't want to get in the middle of their differences. Dwight tells stories of how he used to beat people up and teaches Toby to do the same. Toby has new friends in Concrete, but also meets Arthur (Jonah Blechman), an outsider who does not like to be called a homo. At first they fight, but later they become friends. One night Toby takes Dwight's car out for a drive, and when Dwight finds out he beats Toby. Toby asks his mother if they could leave town again, but Caroline says she can't run anymore and that the best thing is to stay.
Two years later. Kennedy is running for president, and Caroline wants to work for his campaign, to the displeasure of Dwight, who is as abusive as ever. Toby has his sights set on leaving town. He wants to apply for prep schools, but he has bad grades and has to get Arthur to help him fake his transcript. When schools start to decline his applications, he realizes that he may have to stay in Concrete like his friends and gets a job in a grocery store. But one school accepts his application and sends an interviewer, who Toby successfully convinces of his suitability for higher education. When Dwight learns that Toby has received a scholarship he attacks Toby with a mustard jar, and they end up in a fight only ended by Caroline and a baseball bat. Caroline finally realizes that she doesn't have to put up with Dwight, and she and Toby leave town as Dwight complains about his misfortune.
At a bus stop, Toby says goodbye to his mother as she leaves on a Greyhound, and he waits for his own bus to depart a few hours later. Titles tell us about the later fates of the characters, including Dwight living in Concrete until the end of his life, Caroline remarrying happily and Toby being expelled from the prep school, serving in Vietnam and becoming an author.