The story centers mainly upon six characters: Gordon (a Lieutenant of the Royal Scots Fusiliers); Audebert (a French Lieutenant in the 26th Infantry and reluctant son of a general); Horstmayer (a Jewish German Lieutenant of the 93rd Infantry); Palmer (a Scottishpriest working as a stretcher-bearer); and German tenor Nikolaus Sprink and his Danish lover, soprano, Anna Sørensen (two famous opera stars).
The film begins with scenes of schoolboys reciting patriotic speeches that both praise their countries and condemn their enemies. In Scotland, two young brothers, Jonathan and William, join up to fight, followed by their priest, Father Palmer. In Germany, Sprink is interrupted during a performance by a German officer announcing a reserve call up. Audebert looks at a photograph of his pregnant wife whom he has had to leave behind (in the occupied part of France, just in front of his trench), and prepares to exit into the trenches.
A few days before Christmas, the Scots and French troops lead a combined assault on the German trenches in France. The attack causes heavy casualties on both sides, but does not break the stalemate of trench warfare. One of the Scottish brothers, William, is mortally wounded during the attack, and his brother Jonathan is forced to abandon him in no-man's-land as they retreat. Audebert loses his wallet (with the photograph of his wife) in the German trench in the confusion.
In Germany, Anna manages to get permission to perform for Crown Prince Wilhelm of Prussia, and Sprink is allowed to accompany her. They spend a night together and then perform. Afterward, Sprink expresses bitterness at the comfort of the generals at their headquarters, and resolves to go back to the front to sing for the troops. Sprink is initially against Anna's decision to go with him, but he agrees shortly afterward.
The unofficial truce begins when the Scots begin to sing festive songs and songs from home, accompanied by bagpipes. Sprink and Sørensen arrive in the German front-line and Sprink sings for his comrades. As Sprink sings Silent Night he is accompanied by a piper in the Scottish front-line. Sprink responds to the piper and exits his trench with a small Christmas tree singing "Adeste Fideles". Following Sprink's lead the French, German, and Scottish officers meet in no-man's-land and agree on a cease-fire for the evening. The various soldiers meet and wish each other "Joyeux Noël","Frohe Weihnachten", and "Merry Christmas." They exchange chocolate, champagne, and photographs of loved ones. Horstmayer gives Audebert back his wallet, with a photograph of his wife inside, lost in the attack a few days prior, and connect over pre-war memories. Palmer and the Scots celebrate a brief Mass for the soldiers (in Latin as was the practice in the Catholic Church at that time) and the soldiers retire deeply moved. However, Jonathan remains totally unmoved by the events around him, choosing to grieve for his brother.
On Christmas Day the officers have coffee together and decide to "bury their dead on the day Christ was born". Later, they play a football match against each other. The following day, after sheltering each other during artillery barrages on both sides, the commanders decide it is time for all of them to go their own way. The French, Scottish, and German soldiers now must face the inevitable consequences from their superiors. As the Germans return to their own trenches after the Allied barrage, Sprink and Anna quietly remain with the French and ask Audebert to be taken prisoner, so as to remain together.
Father Palmer is to be sent back to his own parish and his Battalion disbanded as a mark of shame. Despite emphasising the humanity and goodwill of the truce, he is rebuked by the bishop, who then preaches an anti-German sermon to new recruits, in which he describes the Germans as evil and commands the recruits to kill every one of them. Father Palmer overhears the preaching, and takes off his Christian cross necklace as he leaves.
Back in the trenches, the Scots are ordered by a furious major (who is angered by the truce) to shoot a German soldier who is entering no-man's-land and crossing towards French lines. The soldiers refuse to kill him and shoot a warning shot above the German soldier's head. However, vengeful Jonathan shoots the German, mortally wounding him. The soldier is revealed to be Ponchel, the local Ch'ti aide to Audebert, disguised as a German. Audebert, hearing the familiar alarm clock ringing outside, rushes out to see Ponchel. With his dying words, Ponchel reveals he had gained help from the German soldiers and visited his mother and had coffee with her. He also informs Audebert that he has a young son named Henri.
Audebert's punishment is being sent to Verdun, and receives a dressing down from his father, a general. In a culminating rant, young Audebert upbraids his father, expressing no remorse at the fraternization at the front, and also his disgust for the civilians or superiors who talk of sacrifice but know nothing of the struggle in the trenches. He also informs the general about his new grandson Henri; the general recommends they "both try and survive this war for him".
Horstmayer and his troops, who are confined in a train, are informed by the Crown Prince that they are to be shipped to the Eastern Front, without permission to see their families as they pass through Germany. He then stomps on Jörg's harmonica, and implies that Horstmayer does not deserve his Iron Cross. As the train departs, the Germans start humming a Scottish carol they learned from the Scots, L'Hymne des Fraternisés'/ I'm Dreaming Of Home.