A cselekmény Olaszországban és Svájcban játszódik az első világháború idején. A regény főhőse Frederic Henry, egy amerikai önkéntes, aki tisztként szolgál az olasz hadseregben, az olasz-osztrák fronton. Frederic jó barátságban van az olaszokkal, különösen Rinaldival, aki a frontkórház orvosa, illetve a pappal. Rinaldi révén ismeri meg Catherine Barkley-t, egy skót önkéntes ápolónőt, illetve annak barátnőjét Helen Fergusont. Catherine-nek udvarolni kezd, amikor kiküldik egy frontállásba, hogy a kezdődő nyári offenzíva előtt szervezze meg a sebesültek majdani elszállítását. Az első ellenséges ágyúzás alatt azonban rögtön megsebesül a térdén és a fején. Sebesülése után Milánóba kerül egy amerikai kórházba, ugyanoda, ahová Catherine-t is áthelyezik a frontról. Együtt töltik a nyarat és egymásba szeretnek.
Kapcsolatukat titkolniuk kell, mert hivatalosan nem házasok. Dr. Valentini sikeres műtétet hajt végre Frederic térdén, így a nyár végére újra tud már járni, s hamarosan visszahelyezik a frontra. Elutazása előtt nem sokkal tudja meg, hogy Catherine közben terhes lett. A frontra visszaérkezve azt veszi észre, hogy az emberek morálja már nagyon alacsony. Mindenki csak a háború végét várja, és mindenki értelmetlennek tartja a háborút. Az ősz beköszöntével már nem várnak komolyabb offenzívát az ellenség részéről, jóllehet mindenki hallott már egy közelgő osztrák támadásról, de ezt nem veszik komolyan. A támadás azonban nem marad el – német egységek törik át a frontot Caporettonál és az olaszok hatalmas visszavonulásba kezdenek. Az utak állapota és a tömeges visszavonulás azonban csak káoszhoz vezet…