Le film commence la veille de Noël 1944, quelque part en Europe. C'est la Seconde Guerre mondiale. Crosby et Kaye jouent deux soldats de l'armée américaine. Crosby joue le rôle du capitaine Bob Wallace et Kaye celui du soldat de première classe Phil Davis. Bob est un artiste de Broadway, Phil veut devenir un artiste professionnel. Ils interprètent "White Christmas". Leur commandant, le major général Thomas F. Waverly est relevé de son commandement. Il arrive pour la fin du spectacle et dit au revoir.
Après la représentation, tout le monde est obligé de se mettre à l'abri d'un bombardement aérien. Une bombe fait tomber un mur. Bob est trop occupé à crier des ordres pour s'en apercevoir. Phil le pousse hors de son chemin et lui blesse le bras. Bob rend ensuite visite à Phil dans un hôpital de campagne et le remercie de lui avoir sauvé la vie. Phil montre à Bob un duo qu'il a écrit et lui demande de se produire avec lui à New York. Se sentant obligé par l'héroïsme de Phil, Bob accepte.
Après la guerre, Bob et Phil se font connaître dans les boîtes de nuit, à la radio, puis à Broadway, et deviennent finalement des producteurs à succès. Ils montent leur dernière comédie musicale à succès intitulée Playing Around. Le même jour, ils reçoivent une lettre de "Freckle-Faced Haynes, the dog-face-boys", leur sergent de mess de la guerre, leur demandant de regarder un numéro que font ses deux sœurs.
Ils vont au club pour assister au spectacle des "Sisters". Phil remarque que Bob aime Betty, jouée par Rosemary Clooney. Phil aime sa soeur Judy, jouée par Vera-Ellen. Betty et Judy rejoignent Bob et Phil à leur table. Phil danse avec Judy. Phil et Judy s'entendent bien. Bob et Betty ne s'entendent pas. Ils ont une petite dispute sur la façon dont Bob pense que tout le monde a un angle d'attaque dans le show-business.
Judy et Betty se rendent au Columbia Inn de Pine Tree, dans le Vermont, où elles doivent se produire pendant les vacances. En raison d'un désaccord avec leur propriétaire, les filles doivent partir. Phil donne aux sœurs sa chambre à coucher et celle de Bob dans le train. Ils retardent le shérif en imitant les filles et chantent leur chanson, "Sisters". Bob et Phil montent à bord plus tard et Bob est extrêmement contrarié qu'ils doivent passer la nuit dans le wagon-bar en route pour New York. Ils sont rejoints par Betty et Judy, qui les remercient abondamment pour les billets et les convainquent de les accompagner au Pine Tree.
Quand le train arrive à Pine Tree, il n'y a pas de neige. Bob et Phil découvrent que l'auberge est dirigée par leur ancien commandant, le général Waverly. Waverly a investi toutes ses économies dans l'auberge. Il échoue parce qu'il n'y a pas de neige et pas de clients. Pour faire des affaires à l'auberge, Bob et Phil font venir toute la troupe et l'équipe de leur comédie musicale Playing Around. Ils ajoutent Betty et Judy aux répétitions. La relation de Bob et Betty s'épanouit et ils passent beaucoup de temps ensemble.
Bob découvre que la demande du général de rejoindre l'armée a été rejetée. Bob appelle Ed Harrison un vieux copain de l'armée. Ed est maintenant un animateur d'émission de variétés à succès. Ils organisent une invitation télévisée à tous les hommes anciennement sous le commandement du Général pour qu'ils viennent à l'auberge la veille de Noël, comme une surprise. Harrison leur suggère de diffuser l'émission à la télévision nationale afin de générer de la publicité gratuite pour Wallace et Davis. Bob insiste sur le fait que cela ne doit rien avoir à voir avec leurs affaires.
Emma Allen, une femme de ménage curieuse, a écouté, mais elle n'a entendu que la partie sur la publicité gratuite, et non le rejet de l'idée par Bob. Elle pense que son patron sera considéré comme un personnage pitoyable à la télévision et le dit à Betty. Betty est choquée. Le malentendu amène Betty à ignorer un Bob déconcerté. Pendant ce temps, Judy devient convaincue que Betty ne s'engagera jamais dans une relation sérieuse tant que Judy ne sera pas fiancée ou mariée. Elle fait pression sur un Phil réticent pour qu'il annonce de fausses fiançailles, mais le plan se retourne contre elle lorsque Betty part brusquement à New York pour accepter une offre d'emploi.
Une fois les répétitions terminées, Phil et Judy révèlent à Bob que les fiançailles étaient truquées. Bob ne connaît toujours pas la vraie raison du départ de Betty. Il se rend à New York pour le Ed Harrison Show. Il essaie de convaincre Betty de revenir. Bob voit le nouveau numéro de Betty et lui dit la vérité sur les fiançailles. Ed Harrison l'appelle avant qu'il ne découvre ce qui la dérange vraiment.
De retour à l'auberge, Phil simule une blessure pour distraire le général afin qu'il ne voit pas la diffusion de l'annonce de Bob. Dans l'émission, Bob invite les vétérans de la 151e division à venir à Pine Tree, dans le Vermont, la veille de Noël. Betty le voit à la télévision et se rend compte qu'elle avait tort. Elle retourne à Pine Tree à temps pour l'émission de la veille de Noël, mais ne le dit qu'à Judy. Toute la division vient à Pine Tree en secret. Lorsque le général entre dans la loge, il est accueilli par son ancienne division, qui chante un refrain entraînant de "The Old Man". Au moment où la chanson suivante se termine, la neige commence à tomber.
Dans la finale, Bob et Betty se déclarent leur amour l'un pour l'autre. Tout comme Phil et Judy. Le fond du décor est retiré pour montrer la neige qui tombe. Bob, Betty, Phil et Judy interprètent "White Christmas". Tout le monde lève son verre et porte un toast : "Que vos jours soient joyeux et lumineux, et que tous vos Noëls soient blancs".