A man (Richard Dreyfuss) sits in his car reading the headline of a newspaper article about a man who had been stabbed to death at a fast food restaurant. He is overcome with a wave of nostalgia and begins to narrate the story of when he was 12 years old and the time he first saw a dead human being.
Gordon "Gordie" Lachance (Wil Wheaton) is playing cards inside a tree house with his best friends Chris Chambers (River Phoenix) and Teddy Duchamp (Corey Feldman). Each boy has his own story and a reputation to follow. Chris comes from a family renowned for their dishonesty and abusive nature, which gives him a bad rap despite his tough but kind disposition. Teddy, rather eccentric, is recognizable by the mangled remains of his right ear which his mentally unstable father held down to a hot stove top. His father resides in a mental institution but Teddy speaks highly of him for serving in WWII. The fourth of their group and the butt of many jokes, portly Vern Tessio (Jerry O'Connell), begs to be let in the tree house, saying he has important news. The others make light fun of him until he asks if they want to go see a dead body. They all fall silent as he explains that, while looking for a misplaced penny jar under his porch, he overheard his older brother Billy (Casey Siemaszko) and friend Charlie Hogan (Gary Riley) discuss how Billy found the body of Ray Brower, a kid who had recently gone missing. Gordie and his friends followed the story closely because Ray was around their age, last seen picking blueberries in the woods outside of town. Billy says the kid must have been hit by a train and refuses to report the discovery to the police because he was at the site in a stolen car.
Gordie and the others decide to go find the body and accept recognition as local heroes. They make plans to tell their parents they're sleeping over at each other's homes the next day and to meet the next morning on the train tracks leading out of town. Come morning, Gordie goes to fetch his canteen in his older brother's room. A few months prior his brother, Denny (John Cusack), a popular athlete, died in a car accident. Gordie's mother (Frances Lee McCain) has been silent and distant since then and his father (Marshall Bell) asks him why he can't have friends like Denny's or play sports like him. He has no interest in his son's aspirations to become a writer and criticizes Chris for stealing milk money at school. The only support Gordie received was from his brother who gave him an old Yankee cap, something he now cherishes.
Gordie meets Chris in town who takes him to a back alley and shows him the gun he swiped from his father's bureau. Gordie lightly takes aim at a garbage can and pulls the trigger, thinking it's not loaded. It is. It fires and sends the two running for the main street where they come across a few members of a gang led by Ace Merrill (Kiefer Sutherland). Chris's older brother, Eyeball (Bradley Gregg) leers at the boys as Ace steals Gordie's cap and threatens Chris with a lit cigarette. They let the boys go unharmed and walk away, laughing. Gordie and Chris meet up with Teddy and Vern at the train tracks where they realize no one's brought food. They take out their money and agree to buy something along the way. As a train approaches, everyone but Teddy gets off the tracks. Teddy imitates shooting an automatic at the train, intent on dodging it at the last second, 'just like my father in Normandy'. Chris, however, pulls him off before the stunt can be performed and yells at him for nearly killing himself.
They soon arrive at a local junkyard that is rumored to house a disgruntled owner with a ferocious dog named Chopper which he's supposedly trained to attack any intruders, going right for the person's balls. However, the yard is empty and the four rest in the shade of a car hood for a few minutes while Gordie, after losing a race, goes to retrieve food at the store on the other side. On his way back, he notices the others scrambling over the yard fence and turns just in time to see the owner, Milo Pressman (William Bronder), emerge, yelling for Chopper. Due to the dog's legendary reputation, when Milo shouts for Chopper to 'sick 'em, boy', Gordie imagines that what Milo's saying is 'sick balls'. Gordie frantically runs for the fence with the dog close on his heels but makes it over the top. He turns and sees that Chopper (Popeye) is not the dog he'd expected. Milo rushes over to the fence and berates the four boys for making fun of his dog. Teddy throws a few insults but is shocked silent when Milo calls his father a loony. Teddy breaks down, shouting that his father stormed the beach at Normandy, and has to be led away by the others.
Following the train tracks, they come to a bridge. They hesitate to cross, unsure of when the next train is due. Feeling confident, they begin to cross with Chris and Teddy in the lead and Gordie trailing behind Vern, who's chosen to crawl instead of walk. Midway, Vern loses a comb that he packed in his shirt pocket which he'd hoped to use once they found the body and reported it to the local news. Gordie consistently looks back and bends down to feel the rails. A light vibration leads him to see plumes of smoke in the distance. He shouts TRAIN and yells at Vern to get to his feet and run. They are barely able to make it to the other side and off the tracks. Chris jokes that now, at least, they know when the next train is.
As they continue deeper into the forest, Chris lags behind with Gordie who is despondent about being a writer and doesn't think much of his talents. Chris tries to encourage him, saying that he wishes he was his father instead so that he could give him proper guidance and support. They set up camp for the night and Gordie tells them all a story about a kid named Lardass Hogan (Andy Lindberg), stuck with such a name because of his weight. Sick and tired of being made fun of for his considerable size, Lardass takes revenge on the rest of his town by forcing himself to violently throw up during a blueberry pie eating contest. What ensues is a comedic chain reaction of perpetual barfing.
The boys decide to sleep in shifts and Gordie takes the opportunity, while Vern and Teddy sleep, to talk to Chris alone. Chris confides in him that he hates his family name and the association he has with them, wishing to leave to start fresh somewhere and actually make something of himself. He reveals that he did take the milk money at school first but felt remorseful about it and returned it to one of the teachers, who happened to show up to school the next day in a brand new dress. Chris took the heat for the theft but could never atone to it because of his family's reputation.
The next morning, Ace and his gang are seen spending recreational time smoking and hitting mailboxes with baseball bats as they drive through their neighborhood. Billy and Charlie draw Ace's attention with their silence and they finally blab about finding Ray's body. Intent on claiming credit for himself, Ace heads out with them, along with Vince Desjardins (Jason Oliver) and Eyeball.
Meanwhile, Gordie and the others take a shortcut through the woods and land in a swamp infested with leeches. They strip down and Gordie finds one attached to his lower extremities, fainting after removing it. Eventually, they come back to the tracks and discover Ray's body (Kent W. Luttrell), knocked clean out of his shoes and lying in some bushes. They decide to build a stretcher for him and Gordie breaks down, crying that his father truly hates him and knowing that he favored Denny.
At that moment, Ace and the rest of the gang appear and demand that the boys leave so they can take the body. Chris insults him and Ace pulls out a knife before Gordie fires the gun in the air. He threatens Ace, saying it'll be all too easy to kill him, and Ace leaves. Gordie announces that no one will get the credit for finding Ray; they will instead report it through an anonymous call.
They return to town with Gordie narrating that it seemed so much smaller after their journey. As the boys split up and head home, Gordie narrates that Vern and Teddy grew distant over the next few years. Vern married straight out of high school, had four children, and became a fork lift driver at a lumberyard. Teddy attempted to join the army but was rejected due to his poor eyesight and ear injury. He eventually served some jail time and performed odd jobs around Castle Rock. Chris managed to stick it in school with Gordie and went to college to become a lawyer. However, it's revealed that he was stabbed and killed when he tried to break up a fight in a fast food restaurant; the very article Gordie read at the start of the film.
Gordie closes the film as he finishes a memoir he's been writing about his childhood and leaves to take his son and friend (Chance Quinn and Jason Naylor) out swimming.