Amir, a well-to-do Pashtun boy, and Hassan, a Hazara who is the son of Ali, Amir's father's servant, spend their days kite fighting in the hitherto peaceful city of Kabul. Hassan is a successful "kite runner" for Amir; he knows where the kite will land without watching it. Amir's father, a wealthy merchant Amir affectionately refers to as Baba, loves both boys, but is often critical of Amir, considering him weak and lacking in courage. Amir finds a kinder fatherly figure in Rahim Khan, Baba's closest friend, who understands him and supports his interest in writing.
Assef, an older boy with a sadistic taste for violence, mocks Amir for socializing with a Hazara, which is, according to Assef, an inferior race whose members belong only in Hazarajat. One day, he prepares to attack Amir with brass knuckles, but Hassan defends Amir, threatening to shoot out Assef's eye with his slingshot. Assef backs off but swears to get revenge.
One triumphant day, Amir wins the local kite fighting tournament and finally earns Baba's praise. Hassan runs for the last cut kite, a great trophy, saying to Amir, "For you, a thousand times over." However, after finding the kite, Hassan encounters Assef in an alleyway. Hassan refuses to give up the kite, and Assef beats him severely and rapes him. Amir witnesses the act but is too scared to intervene. He knows that if he fails to bring home the kite, Baba would be less proud of him. He feels incredibly guilty but knows his cowardice would destroy any hopes for Baba's affections, so he keeps quiet about the incident. Afterwards, Amir keeps distant from Hassan; his feelings of guilt prevent him from interacting with the boy.
Amir begins to believe that life would be easier if Hassan were not around, so he plants a watch and some money under Hassan's mattress in hopes that Baba will make him leave; Hassan falsely confesses when confronted by Baba. Although Baba believes "there is no act more wretched than stealing", he forgives him. To Baba's sorrow, Hassan and Ali leave anyway. Amir is freed of the daily reminder of his cowardice and betrayal, but he still lives in their shadow.
In 1979, five years later, the Soviet Union militarily intervenes in Afghanistan. Amir and Baba escape to Peshawar, Pakistan, and then to Fremont, California, where they settle in a run-down apartment. Baba begins work at a gas station. After graduating from high school, Amir takes classes at a local community college to develop his writing skills. Every Sunday, Baba and Amir make extra money selling used goods at a flea market in San Jose. There, Amir meets fellow refugee Soraya Taheri and her family. Baba is diagnosed with terminal cancer but is still capable of granting Amir one last favor: he asks Soraya's father's permission for Amir to marry her. He agrees and the two marry. Shortly thereafter Baba dies. Amir and Soraya settle down in a happy marriage, but to their sorrow they learn that they cannot have children.
Amir embarks on a successful career as a novelist. Fifteen years after his wedding, Amir receives a call from Rahim Khan, who is dying, asking him to come to Peshawar. He enigmatically tells Amir, "There is a way to be good again." Amir goes.
From Rahim Khan, Amir learns that Ali was killed by a land mine and that Hassan and his wife were killed after Hassan refused to allow the Taliban to confiscate Baba and Amir's house in Kabul. Rahim Khan further reveals that Ali, being sterile, was not Hassan's biological father. Hassan was actually Baba's son and Amir's half-brother. Finally, he tells Amir that the reason he called Amir to Pakistan was to rescue Sohrab, Hassan's son, from an orphanage in Kabul.
Amir, accompanied by Farid, an Afghan taxi driver and veteran of the war with the Soviets, searches for Sohrab. They learn that a Taliban official comes to the orphanage often, brings cash, and usually takes a girl away with him. Occasionally he chooses a boy, recently Sohrab. The director tells Amir how to find the official, and Farid secures an appointment at his home by claiming to have "personal business" with him.
Amir meets the man, who reveals himself as Assef. Sohrab is being kept at Assef's house, where Assef sexually abuses him and makes him dance dressed in women's clothes. Assef agrees to relinquish him if Amir can beat him in a fight. Assef then badly beats Amir, breaking several bones, until Sohrab uses a slingshot to fire a brass ball into Assef's left eye. Sohrab helps Amir out of the house, where he passes out and wakes up in hospital.
Amir tells Sohrab of his plans to take him back to America and possibly adopt him. However, American authorities demand evidence of Sohrab's orphan status. Amir tells Sohrab that he may have to temporarily break his promise until the paperwork is completed, and Sohrab attempts suicide. Amir eventually manages to take him back to the United States. After his adoption, Sohrab refuses to interact with Amir or Soraya until the former reminisces about Hassan and kites and shows off some of Hassan's tricks. In the end, Sohrab only gives a lopsided smile, but Amir takes it with all his heart as he runs the kite for Sohrab, saying, "For you, a thousand times over."