Mariam lives in the small village of Gul Daman with her mother. She is the illegitimate daughter of Jalil, a wealthy businessman who lives in the nearby city of Herat. After her mother's suicide, she is sent to live with Jalil. Jalil and his wives quickly marry Mariam off to a shoemaker named Rasheed, and the newlyweds move to Kabul, where Mariam becomes pregnant. Sadly, Mariam miscarries. Rasheed is furious and becomes abusive.
Across Kabul (and in a galaxy far, far away…) a girl named Laila is born on the same night that the Soviets take control of Afghanistan. Her best friend (and love interest) is Tariq, a neighborhood boy who lost a leg when he was a child. With the war worsening, Tariq's family decides to leave for Pakistan, and he and Laila consummate their relationship the night before he leaves. Laila's family decides to leave soon after, but her parents are killed by a stray rocket as they're packing up the car.
Rasheed and Mariam care for Laila as she recovers. A man comes by and tells Laila that he saw Tariq die in a hospital. Rasheed, being the dirt ball that he is, uses this as an opportunity to ask Laila to marry him. Surprisingly, she says yes. It turns out that she's pregnant with Tariq's child. Her plan is to convince Rasheed that the child is his, and then escape to Pakistan after she's saved enough money.
Mariam resents Laila at first, but she eventually becomes close to Laila and her new daughter, Aziza. Laila tells Mariam about her plan to escape, and Mariam decides to join them. They eventually go through with the plan, but they're arrested before they can leave and are sent home with Rasheed. He is so furious that he almost kills them.
Laila and Rasheed have a son named Zalmai. After Rasheed's shop burns to the ground and the family goes broke, he forces Laila to send Aziza to a nearby orphanage. One day, after visiting Aziza, Laila returns home to find a very surprising guest: it's Tariq. It turns out the man who had come by all those years ago was hired by Rasheed to trick Laila. Laila tells Tariq about Aziza, and he promises that he will meet her the following day.
Rasheed starts to beat Laila that night when he finds out about Tariq. Mariam ends up killing Rasheed to protect Laila. Mariam remains in Kabul to take the blame and is executed by the Taliban. Laila, Tariq, and the kids move to Tariq's home in Murree, where life is comfortable. After the U.S. invasion, however, Laila decides to return to Kabul.
Before returning home, Laila stops in Herat, Mariam's hometown. She visits Mariam's childhood home, and receives a box for the local Mullah's son that was meant for Mariam. It's from her father Jalil. It contains a long letter, as well as her share of his inheritance. Laila uses the money to renovate the orphanage in Kabul, and we learn at the close of the book that she is pregnant with a new child.