Georgie Burgess, seven and a half years old, lives in Tampa Florida. His mother and her boyfriend abuse him savagely, but he keeps their beatings a secret. He gets in trouble at school and hasn't learned to read, but he loves looking at a book with pictures of flowers.
Georgie's life changes after he wins a rosebush at a supermarket contest. After his mother's boyfriend beats him severely, police remove Georgie from his dangerous home, and his unplanted rosebush comes with him. Georgie is placed temporarily with Mrs. Sims, a cashier from the supermarket. But as his social worker and the judge find a home for him, Georgie is increasingly worried about finding a home for his rosebush.
When Georgie is placed in a Catholic boys' boarding school, he is convinced that his rosebush belongs in the garden of the neighbors across the road. Though principal Sister Mary Angela tries to convince Georgie to plant it elsewhere, Georgie sneaks out at night to plant his rosebush there. The next morning, however, the infuriated neighbor, Molly Harper, rips the bush out of her garden and returns it to the school, demanding to see the principal.
Georgie returns to the garden with the bush and discovers that while planting his rosebush in the dark, he has accidentally crushed the lilies planted for Molly Harper by her husband. Mrs. Harper confronts Georgie and threatens to burn his rosebush if he plants it again, but she softens upon glimpsing the infected wounds on Georgie's back left by the abuse of his past.
During the confrontation, Georgie becomes ill and lapses into unconsciousness. While Georgie is delirious with fever, Mrs. Harper arranges to have the rosebush replanted in her garden and visits Georgie often. However, with her angry threat still in his mind, Georgie is unable to forgive Mrs. Harper and refuses to see her.
As Georgie recovers, he forms a friendship with Timothy, whom Sister Mary Angela calls her "public relations" boy. Timothy explains that Mrs. Harper's husband and elder son, Paul, were recently killed in a car accident. Mrs. Harper's grief makes it difficult for her to be around boys the age of her dead son.
Meanwhile, Georgie becomes friends with Mrs. Harper's younger son, Robin, who has severe cognitive impairments, and his grandfather, Mr. Collier. While Mr. Collier helps Georgie learn to read, Georgie tries to teach Robin to speak and feed the ducks. Georgie becomes closer and closer to the Harper family, playing with Robin and joining the gardener as his apprentice, but he is still unable to forgive Mrs. Harper for threatening his rosebush.
After, Georgie takes Robin to the pond to feed the ducks. All the ducks follow Robin, who is holding bread. Robin falls into the pond and drowns. At Robin's grave, Georgie decides to plant his rosebush on Robin's grave, not in the garden. Mrs. Harper and Georgie start to connect over his decision and they head back toward the school.
When Sister Mary Angela holds auditions for the choir, Georgie is proud to find he is a good singer with perfect pitch. When Mrs. Harper, despite struggling with her grief, brings Robin to the chapel to hear the choir, Georgie begins to feel sympathy for her. Nevertheless, he cannot bring himself to join the new dramatics class when he learns that Mrs. Harper will be teaching it. Instead, he watches every class from the audience seats, learning each role by heart from a distance. When another boy backs out, Georgie steps in to play the Mad Hatter opposite Mrs. Harper playing the part of Alice in the tea party scene from Alice in Wonderland. After speaking to her in character, Georgie finds he is able to speak to Mrs. Harper face to face and resolves to ask her the next day if she is his real mother.