Lieutenant Frederic Henry, a young American ambulance driver with the Italian army during World War I, takes a winter leave from the front. When he returns, he meets and quickly falls in love with Catherine Barkley, an English nurse's aide in the town's British hospital. She mourns the death of her fiancé from the war last year, and she eagerly enters the pleasurable diversion the game of love offers with Henry. Henry, too, is revived by love after the horror he has seen of war.
Henry's knee is badly wounded during an artillery bombardment, and he is sent to a hospital in Milan for an operation. Catherine transfers to his hospital and helps him recuperate from the surgery. They spend all their free time together, and their love deepens as they gradually acknowledge that they stand alone against the cruel world. Before Henry returns to the front, Catherine reveals she is pregnant. They are both pleased with this, however, and cannot wait to see each other again.
Back at the front, the Germans and Austrians break through the Italian line, and the Italians are forced to make a lengthy retreat. Henry travels with some other drivers, two Italian engineering sergeants, and two Italian girls. When the sergeants abandon the drivers when their car gets stuck, Henry shoots one of them, and another driver finishes him off. Later, the trigger-happy Italian rear guard mistakenly shoots one of the Italian drivers. One of the drivers deserts the group, choosing to be taken prisoner rather than face potential death. At a bridge over a flooded river, the corrupt Italian military singles out Henry as a lieutenant and accuses him of treachery leading to the Italian defeat. Knowing he will be executed, Henry jumps into the river and escapes with the current.
Henry manages to get out of the fast-moving river and jump a train to Milan. He thinks he has made a "separate peace" and is no longer attached to the military. He finds Catherine in the town of Stresa and, prior to Henry's arrest for desertion, the two make a daring nighttime escape by a borrowed boat to Switzerland. They enjoy an idyllic, isolated life that winter in the Swiss town of Montreux, spending time outdoors and preparing for the arrival of their baby; Henry is not completely without guilt, however, for abandoning his friends at the front.
They move to the town of Lausanne in the spring to be close to its hospital, and Catherine soon goes into labor. The pregnancy is lengthy and painful, and the baby, delivered through a Caesarean, is stillborn. Catherine dies soon after of multiple hemorrhages with Henry by her side. He tries to say goodbye to her, but it is like saying goodbye to a statue, and he walks back to his hotel room in the rain.