Set during the Israeli military occupation of the West Bank, the story follows twelve-year-old Karim Aboudi, a Palestinian boy living with his family in a Ramallah apartment building. Karim shares a bedroom with his seventeen-year-old brother, Jamal, and the household includes their parents, Hassan and Lamia, and their younger sisters, Farah and four-year-old Sireen. When the novel opens, Karim is writing lists of his hopes and fears. He dreams of becoming a champion soccer player and the liberator of Palestine; he fears being shot, having his house demolished by tanks, and dying. A two-week curfew, imposed by Israeli forces after a Palestinian shooting at an Israeli café, has locked the entire city indoors. An Israeli tank sits at the crossroads below the apartment, and Karim cannot even go outside to play his favorite solitary game of kicking a soccer ball against the wall.
When the curfew lifts for two hours, the family scrambles to buy food and medicine for Sireen's ear infection. Karim meets his best friend, Joni Boutros, at school for a pickup soccer game. He notices Jamal staring at Joni's older sister, Violette, with obvious infatuation. The tanks return, and everyone is locked inside again.
After another week, the daytime curfew lifts. Karim slips outside to play soccer but is scolded by an elderly neighbor. A boy watching from a nearby pile of stones laughs at the scene. Slightly older than Karim, thin, with a chipped front tooth and worn clothes, the boy offers to show Karim a better place to play. He leads Karim over the hill toward the refugee camp, a settlement of Palestinians who were driven from their homes when Israel was created in 1948. There, he reveals a flat stretch of open ground nearly the size of a real soccer field. They clear stones and discover they are well matched. The boy reveals his nickname: the Grasshopper, or Hopper.
At home, Hassan is in despair. His electrical goods shop has sold nothing but batteries. Jamal reveals that Israeli forces have wrecked their school, then confesses his crush on Violette, begging Karim to get a photo of her from Joni. Karim agrees. Hassan announces the family will visit their grandmother, Um Hassan, in the village of Deir Aldalab to pick olives.
The journey is harrowing. At a checkpoint, soldiers force all Palestinian men and boys to strip to their underwear at the roadside. Karim watches his father stand humiliated beside a trembling elderly man. When Sireen escapes from the car, a young soldier grabs Karim with shaking hands, and Karim realizes the soldier is terrified. The experience shatters Karim's assumptions about his father's strength.
In the village, the family discovers a large Israeli settlement built on a nearby confiscated hillside. When they go to pick olives, armed settlers fire at them, ordering them off land the Aboudis have owned for generations. The family flees under gunfire. That evening, news of a suicide bombing in Jerusalem that killed eleven Israelis breaks on television. Karim whispers "Yes!" in vengeful triumph. His great-uncle Abu Feisal, an elderly farmer, finds him brooding outside and challenges his certainty, arguing that the occupiers are merely human, capable of the same good and evil as anyone. Later, Hassan speaks with quiet authority: "Endurance. That's what takes courage. Decency among ourselves. That's where we must be strong. When they steal from us and try to humiliate us, the real shame is on themselves" (65). Karim feels a sudden rush of love for his father. That night, Farah wets her bed for the first time since infancy, a sign of the trauma she has absorbed.
Back in Ramallah, Karim returns to Hopper's ground but acts evasive when he encounters Joni, who is hurt by the secrecy. Days later, Karim spots Hopper climbing scaffolding near a bridge where a bomb has been reported. Joni unexpectedly appears, and together they climb to the rooftop, where Hopper reveals the bomb is a hoax he built from stones, wire, and tape. When a helicopter arrives and hovers overhead, the three boys hide under a water-tank platform, certain they are about to die. The helicopter departs, and the shared danger cements them as a trio.
Together they transform the vacant lot. Inside the rubble they discover a wrecked car containing a mother cat and two kittens. They build a concealed entrance, and using cans of paint found in the debris, create a Palestinian flag from painted stones. Hopper invites Karim and Joni home, where Karim learns Hopper's real name is Sami. His father died in a construction accident in Kuwait, and his older brother Salim is imprisoned in al-Muskobiya, a notorious Israeli prison. An old key on the wall belongs to the family's house in Ramle, from which they were expelled in 1948. Karim begins to understand what life is like for refugees.
Daily life grinds on. Joni provides a defaced photo of Violette that Karim retouches for Jamal. School reopens in damaged buildings. The three boys meet each afternoon to care for the cats, named Aziza, Ginger, and later Hurriyah (Arabic for "freedom"), and to improve their field. When neighborhood children taunt Farah about her bed-wetting, Karim deflects the bullying with humor, beginning to see his younger sister as a person shaped by the same fears they all carry. One afternoon, Karim follows Jamal to a stone-throwing confrontation with soldiers and breaks cover to warn his brother of approaching reinforcements.
The boys enlist others to move a massive rock from their field, and a full soccer game begins. Karim scores a magnificent goal. Then Israeli tanks arrive, reimposing the curfew. Hopper runs toward the lead tank to help his grandfather, who has been caught outside. In a theatrical act of defiance, Hopper hurls a spilled eggplant at the tank and swings from its gun barrel before dodging into the refugee camp, grazed by a bullet.
Karim sprains his ankle and is trapped behind the rubble as tanks occupy the field. He squeezes into the buried car and hides for two nights and nearly two full days, sustained by the cats and his father's words about endurance. Through a gap, he watches a soldier gently feed Aziza, and for an instant the young man's laughing face looks exactly like Jamal's, a fleeting recognition of shared humanity. When Aziza carries her kittens away, Karim is tempted to hold Ginger back but realizes that imprisoning the kitten would make him no different from the occupier.
On the third morning, the tanks withdraw, but a sniper remains on a nearby rooftop. A bullet lodges in Karim's left calf as he scrambles over the rubble. Jamal, having broken the curfew to search for him, carries Karim through the occupied city to the hospital. Surgeons remove the bullet, and the doctor reports it missed the bone by half an inch.
When the curfew lifts, Karim learns that Joni's family is leaving for Amman, Jordan. He also learns the tank killed Ginger, and Hopper buried the kitten near his mother's flowers. At the Manarah, Ramallah's central square, both families celebrate the release of prisoners from al-Muskobiya, including Salim, who has been beaten and left with lasting pain. Hopper finds Karim in the crowd and asks if they will rebuild. Karim says yes but firmly declines the adults' offer to bring in heavy equipment, unwilling to let any large machine onto their ground again. As Hopper climbs the monument scaffolding, his green shirt flapping like a flag, Karim adds a final item to his list of aspirations: simply to live an ordinary life in a free Palestine. He tells himself they will survive.