City of Life and Death unfolds in 1937, amidst the unsettling backdrop of the Imperial Japanese Army's takeover of Nanjing, the capital of the Republic of China. This harrowing period is commonly referred to as the Nanjing Massacre, characterized by the mass killing of countless Chinese prisoners of war and civilians at the hands of the Japanese military over several weeks.
As the chaos ensues, many commanders from the National Revolutionary Army abandon Nanjing. Among those left behind are the determined Chinese soldier, Lieutenant Lu Jianxiong (Liu Ye), and his steadfast comrade Shunzi (Yisui Zhao). They make a desperate attempt to halt a group of deserters from fleeing the city. Unfortunately, as they exit its gates, they fall into the clutches of the Japanese forces that have effectively encircled the city.
Throughout this turbulent time, as the Japanese search for any remaining resistance, a confrontation arises. Sergeant Kadokawa Masao (Hideo Nakaizumi) and his squad are ambushed by Lu and a mix of both regular and irregular soldiers who fire from the safety of buildings. Despite their valiant efforts, Lu and his comrades are eventually overwhelmed, leading to their surrender as more Japanese troops descend upon their position. The captured Chinese soldiers are then led away to various locations where they face horrific mass executions. Remarkably, Shunzi and a young boy named Xiaodouzi (Liu Bin) somehow manage to evade the gunfire and seek refuge in the Nanjing Safety Zone, a haven established by the German businessman John Rabe (John Paisley) and other Westerners.
Inside this safety zone, thousands of vulnerable Chinese women, children, elderly men, and injured soldiers gather, hoping for protection. However, the sanctuary is frequently violated by groups of Japanese soldiers who impose their desires upon the female refugees, leading to a desperate measure: women are advised to cut their hair and disguise themselves as men to avoid assault. One courageous prostitute, Xiaojiang (Jiang Yiyan), refuses to comply, stating her need to preserve her hair for her livelihood.
Simultaneously, Kadokawa grapples with his internal conflict as he develops feelings for a Japanese prostitute, Yuriko (Yuko Miyamoto). Amidst the omnipresent violence surrounding him, he struggles with deep-seated feelings of alienation while simultaneously bringing Yuriko sweets and gifts, promising her a future together post-war.
In the safety zone, Tang Tianxiang (Fan Wei) and teacher Jiang Shuyun (Qin Lan) oversee daily operations. However, Tang cannot protect his young daughter from a soldier who callously throws her out of a window, nor can he shield his sister-in-law from horrific abuse. When Second Lieutenant Ida Osamu (Ryu Kohata) orders the surrender of 100 women as "comfort women," Rabe and Jiang are heartbroken as they relay the grim announcement to the community. In a show of desperate bravery, Xiaojiang and others step forward, believing that their sacrifices might save the remaining refugees.
Upon encountering Xiaojiang, Kadokawa attempts to offer her rice, but he is plunged into despair as he witnesses another soldier assault her while she lies in a near-comatose state. The brutal reality continues to unfold as countless "comfort women," including Xiaojiang herself, succumb to the horrific consequences of abuse, leaving behind only their lifeless bodies, which Kadokawa is forced to witness as they are taken away.
Tensions escalate when Rabe is ordered back to Germany because of diplomatic tensions arising from his actions in the safety zone. Although Tang originally is granted permission to leave with Rabe, he decides at the last moment to swap places with a Chinese soldier impersonating his assistant, proclaiming his wish to stay back in search of May, his sister-in-law. Mrs. Tang reveals her pregnancy before saying goodbye to her husband, but shortly after Rabe's departure, Tang is executed by firing squad under Ida’s orders.
Subsequently, the Japanese military revokes the safety zone, intensifying their hunt for Chinese men who had served as soldiers. Promising jobs and payment for those who comply, they instead lead those identified as soldiers to their doom. Shunzi, who survived earlier murders, is initially declared a non-combatant but is soon recognized and captured by a soldier.
After relentless pleas for justice from Minnie Vautrin (Beverly Peckous) and other Westerners, Ida concedes, allowing each refugee to select one man from the execution trucks to be spared. Jiang, cleverly disguises her intentions, rescues one man by posing as his wife, and returns for Shunzi, claiming him as her spouse, while Xiaodouzi pretends to be their son. Recognizing Jiang's ruse, Kadokawa opts not to reveal her deception—yet unfortunately, another Japanese soldier exposes her. Despite her courage, Jiang, Shunzi, and Xiaodouzi are taken captive once more.
In a desperate plea, Jiang, understanding her fate, asks Kadokawa to end her suffering. He follows through, ending her life, shocking those around him. The chaos unfurls as Kadokawa later seeks out Yuriko, only to discover her tragic death after she had fled Nanjing. In his grief, he recalls her as his wife and begs for her to receive a dignified farewell.
As the Japanese soldiers revel in a victory dance ritual commemorating their conquest of Nanjing, Kadokawa's heart becomes heavy with the weight of his actions and the atrocities he has witnessed. The film concludes in a poignant twist as Kadokawa, marching Shunzi and Xiaodouzi towards their execution, unexpectedly sets them free, conveying the profound sentiment, > "Life is more difficult than death." This moment evokes a solemn respect from the soldier accompanying him, who silently walks away. Kadokawa, stricken by shame and sorrow, ends his own life to escape the unbearable guilt that haunts him.
In the end credits, it is revealed that Mrs. Tang continued to live into old age, as did Ida Osamu, and that Xiaodouzi survives to this day, leaving a haunting legacy against the backdrop of this tragic tale.