Set during World War II in Nazi-occupied Paris, the story follows Safiyyah, an adventurous 11-year-old Muslim girl who lives with her family at the Grand Mosque of Paris. Safiyyah dreams of becoming an explorer and spends her afternoons studying maps at a local library with the help of Madame Odette, a kind librarian. Her grandmother, Setti, who grew up in Algeria and later Spain, is the family's emotional anchor, sharing wisdom about choosing "the path of light" and treasuring oranges as symbols of home and memory. Her father, Baba, an administrator at the mosque, lost hearing in one ear and his singing voice fighting for France in the Great War (World War I). He works alongside the mosque's rector, Ammo Kader, and its imam, Ammo Imam, and involves Safiyyah in his daily work. Her mother, Yemma, grows protective as war looms.
When Baba announces that the Germans have crossed the French border through the Ardennes forest, the family confronts what the invasion will mean. Safiyyah's best friend, Isabelle, whose father works in the French government, reveals her family is fleeing Paris. The girls share an emotional farewell, and Isabelle gives Safiyyah a silver locket with pressed wildflowers. Safiyyah vows to look out for their Jewish classmates, including a girl named Hana. Soon after, her 16-year-old cousin Tarek signs up for the French army, and both departures leave Safiyyah feeling helpless.
At the library, Madame Odette reveals she is secretly shipping rare editions to the countryside and hiding books by Jewish authors, fearing Nazi raids. On June 3, 1940, Safiyyah is caught in a German bombing raid while delivering a book to Monsieur Cassin, an elderly botanist completing his life's work on jungle species. She survives but collapses in his doorway from shock. As refugees flood into Paris, the mosque distributes food and water. At school, Safiyyah physically confronts boys who bully Hana for being Jewish.
The Germans reach Paris. Two million Parisians flee, but Safiyyah's family stays. She discovers an abandoned white cat she names Bonbon and meets Timothée, a young refugee from the northern region of Picardy whose family farm was burned by the Germans. They bond over their shared hatred of the Nazis. Meanwhile, Baba grows secretive, locking his office and disappearing at night.
Safiyyah visits Monsieur Cassin and finds his home ransacked by Nazi soldiers who seized his books and manuscript, revealing for the first time that he is Jewish and therefore a target. She sits with the devastated old man, folding origami butterflies until the quiet activity calms him.
After witnessing soldiers terrorize the owners of a Jewish shop, Safiyyah explodes at Baba, accusing him of doing nothing. She steals spare keys and breaks into his locked office, finding bloodstained blankets, her mother's sewing machine, lactic acid, a rubber stamp reading
République Française, and a hidden list of names and addresses. Baba catches her, makes her swear secrecy on the Quran, and reveals the truth: The mosque has been sheltering wounded Allied soldiers. Baba has been forging Muslim identity documents for Jews, using the sewing machine to replicate perforated holes and the lactic acid to alter paperwork. Madame Odette and her fellow librarian, Monsieur Claude, provide names and addresses of Jews from library records. The library is a hub for the Resistance network Ammo Kader has built since before the invasion.
When Nazi soldiers inspect the mosque, Ammo Kader keeps them from the women's prayer section, where Jews are sometimes hidden. Setti warns the Germans already suspect something, and soon Baba is arrested after a spy follows him delivering forged papers. Ammo Kader secures Baba's release, but neither man can safely travel the city anymore. Safiyyah proposes that she and Timothée take over the deliveries, arguing no one would suspect children. Baba reluctantly agrees, and Safiyyah begins running Resistance errands across the city.
Food rationing intensifies and persecution of Jews escalates. Jews are banned from public spaces and forced to wear yellow stars. Safiyyah discovers the mosque also hides Jews in the hammam, a Turkish-style bathhouse, guiding them through a secret passage into the
souterrain, the ancient tunnels beneath Paris, to a river port where wine merchants conceal them in barrels on barges.
One evening, Baba brings home Hana, Safiyyah's classmate, whom he found starving in an abandoned building after her parents were arrested. Hana is mute with trauma. Setti counsels patience, comparing Hana's healing to a seed growing underground. She takes both girls to a rooftop above the mosque and tells Hana her parents are looking at the same moon. Hana speaks for the first time, whispering her mother's name, and begins to cry.
Devastating news arrives: Tarek has been taken prisoner. The blow shatters Setti, who collapses and rapidly declines. Safiyyah trades Isabelle's locket at a black market for two oranges. When Setti tastes a segment, she whispers "Tlemcen! Algeria" and laughs, transported to her homeland. In a final conversation, Setti tells Safiyyah that death is a reunion with loved ones and borrows Safiyyah and Isabelle's phrase: "This isn't goodbye, it's see you later." Two days later, Setti passes away.
As Hana heals, Yemma organizes a secret Passover Seder, a Jewish ritual meal commemorating the Exodus from Egypt, in the mosque basement. Hana's voice grows stronger as they sing songs of liberation. When soldiers accost Safiyyah on the street, seizing her papers and marching her at gunpoint before a higher-ranking officer intervenes, the trauma leaves her afraid to leave the mosque. Her cousin Sumayyah suggests wearing a hijab, a Muslim headscarf, to identify herself as Muslim. Safiyyah wraps Setti's shawl around her head.
Intelligence reaches Ammo Kader that the Nazis are planning a mass roundup of Jews across Paris. The mosque launches its most ambitious rescue. Safiyyah cycles across the city distributing forged papers while Baba persuades the reluctant Monsieur Cassin to flee. Safiyyah and Hana share a wrenching goodbye. Yemma presses into Hana's hand an envelope of Setti's orange seeds, promising they will bear fruit in her new home.
Just as Baba prepares to lead the first group through the tunnels, two soldiers arrive and trap everyone in the prayer hall at gunpoint. Safiyyah realizes she alone knows the route through the
souterrain. She devises a ruse, announcing she needs to let her cat inside, and slips away. As she moves toward the door, Baba begins to sing for the first time since the Great War, his voice steadying her courage. In the tunnels, over 50 refugees wait in freezing darkness. When an elderly woman collapses, Hana sings in Hebrew and others join, reviving her. Safiyyah navigates by a route she memorized from a previous trip with Baba, smells seaweed, and finds the river port. She sends groups of five to board wine barges and says goodbye to Hana and Monsieur Cassin. As the barges drift away, Hana points to the moon, recalling Setti's lesson that the same sky connects separated loved ones.
Walking back alone through the tunnels, Safiyyah hears footsteps in the darkness. The voice calling her name is Baba's. He and Ammo Kader escaped the soldiers and came searching for her. Back at the mosque, Yemma holds Safiyyah and tells her she is proud.
An epilogue set 10 years later shows Safiyyah aboard a ship, her destination listed as "Where oranges grow." She watches the sea spray, and to her, it looks like a thousand white butterflies.