As a child, Chiron (nicknamed “Little”) faces derision from the other boys at school but doesn’t understand why. One day, running to hide from bullies, he runs past, a Miami crack dealer. Juan takes pity on Chiron and brings him home. There, Chiron meets Juan’s girlfriend, Teresa; together, Juan and Teresa quiz Chiron about his home, but Chiron is silent, except for his emphatic statement that he doesn’t want to go home. Juan and Teresa allow him to stay the night, and Juan brings him home the next morning. There, Juan encounters Chiron’s mother, Paula, a nurse who clearly worries for Chiron, even as he resists her embrace. Paula resents Juan’s help.
At school, Chiron has trouble fitting in with the other boys while they play sports, but his closest friend, Kevin, pushes him to show the other boys he’s not “soft” by inviting Chiron to wrestle him.
Chiron begins appearing at Juan’s house instead of going home. Juan takes pity on him and takes him to the beach, where he teaches Chiron to swim and encourages him to forge his own identity, therein becoming a father figure of sorts to Chiron. He tells Chiron about his childhood nickname, “Blue.” Later, Chiron comes home to an empty house and draws himself a hot bath of blue dish soap.
In time, Paula grows addicted to crack and confronts Juan in public about his job as a supplier to her addiction even as he’s attempting to help raise her son. “Don’t give me that, ‘you gotta be getting it from somewhere’ shit, nigger. I’m getting it from you.” She smokes in front of Juan and asks him if he plans on telling Chiron why the other boys make fun of him, insinuating what they both know: that Chiron is gay. At home, Paula takes out this frustration on Chiron, yelling at him before she retreats to her room with her boyfriend.
Eventually, Chiron confronts Teresa and Juan about his sexuality, asking them if he’s a “faggot,” having clearly heard the word at school. Juan and Teresa reply that he doesn’t have to know if he’s gay yet. Chiron then asks Juan if he deals drugs to his mother, and Juan admits that he does. Chiron nods and leaves the house.
Years later, high school-age Chiron hasn’t changed much. He still struggles with bullies, but also still finds comfort in his friend, Kevin, who is now starting to have sex with girls. He also still seeks refuge in Juan and Teresa’s house, although Juan has passed away. Paula’s addiction has clearly gone from bad to worse, and she torments Chiron for the money she knows he gets from Teresa, whom she calls his “play play mommy.”
One night, after being bullied by a kid named Terrell, Chiron takes several trains and buses to the beach, where he meets up with Kevin, who comes to the beach to smoke weed. They smoke together and Chiron admits to Kevin that he cries sometimes. The conversation drifts, and Chiron says he wants “to do a lot of things that don’t make sense.” Kevin asks him to elaborate and puts his hand on Chiron’s back. After a beat of tense eye contact, they kiss and begin having sex. Kevin gives Chiron a ride home afterward and asks him if it’s the first time Chiron has done “anything like that.” They part ways, trying to act casual but clearly smitten. At home, Chiron cares for his sedate mother, who reminds him that she’s his “only.”
After school the next day, Terrel asks Kevin to play “knock down, stay down” with Chiron, and Kevin reluctantly obeys, punching Chiron but ordering him to stay down so that he may stop hitting him. Betrayed, Chiron repeatedly rises to his feet even after receiving several severe blows to the face. At home, Chiron ices his face. He returns to school the following day, strides into the science class he shares with Terrel, and bashes Terrel’s head with a chair. Kevin watches as Chiron is arrested and put into a police car. They exchange intense eye contact.
A decade or so later, Chiron (now called “Black”) is a hardened gangster, having adopted Juan’s lifestyle as a crack kingpin in Atlanta, where he was sent to juvenile prison for injuring Terrel. Paula leaves voicemails on Chiron’s cell phone asking him to visit her. Chiron decides to pick up one night, assuming it’s his mother, but realizes it’s Kevin calling to invite Chiron to come see him back in Miami. Kevin tells Chiron he’s a chef now and apologizes for what occurred between them in high school. Chiron freezes up but is clearly affected by the conversation.
Chiron visits his mother in the rehab facility where she’s in recovery from her crack addiction. She chides Chiron for becoming a drug kingpin and apologizes for treating him so poorly as a child, but affirms that she loves him even if he doesn’t love her. Both mother and son cry, healing together.
Chiron drives to Miami to see Kevin, who doesn’t recognize him at first, in the diner where he works. Kevin makes Chiron the “chef’s special” and quizzes Chiron about his life. Kevin shares that he has a son and went to prison. As always, Chiron is relatively quiet. He later admits to Kevin that he got involved in a drug ring when he went to juvenile prison in Atlanta. Kevin expresses his disappointment in Chiron but plays a romantic song on the jukebox for him, bringing the two together again.
Riding a wave of sexual tension, Chiron follows Kevin back to his place, located right on the beach. Kevin says that Chiron has changed a lot and defends his conventional lifestyle, complete with a kid and a job. Chiron admits that Kevin was the only man who’s ever touched him, and that he’s never really been touched by anyone else since. The two men hold each other, and we see young Chiron on the moonlit beach where Juan taught him to swim.