Angel without wings Clarence (Henry Travers) has been dispatched to Earth to help a troubled George Bailey (James Stewart).

George is a lifelong resident of Bedford Falls, the son of the respected building and loan association president, Peter Bailey (Samuel S. Hinds). When his father dies, Henry Potter (Lionel Barrymore), a wealthy old miser, demands that the firm be dissolved, but the board of directors votes against him on the condition that George take his father's place. George, who had already given up a trip to Europe to settle his father's affairs, reluctantly agrees, which means that he'll stay in Bedford Falls instead of going off to college.

He marries his high school sweetheart, Mary (Donna Reed) and as they prepare to leave on their honeymoon, there is a run on his business by shareholders demanding their money back, as Potter has pulled the loan. George pleads with the mob, then uses his own $2000 honeymoon money to tide each of the customers over until the bank can re-open a week later.

George becomes successful in the community and Potter, fearful of George's growing influence, offers him a high paying job. After initially considering the freedom such an opportunity would offer, including the chance for he and Mary to finally travel, George realizes what Potter is up to and angrily refuses.

George and Mary have four children and, when World War II starts, George stays home because of his 4F draft status. He is deaf in one year from a childhood injury when he saved is brother, Harry, from drowning. Harry is a war hero, and wins the Congressional Medal of Honor.

With an audit in progress, Uncle Billy (Thomas Mitchell) loses eight thousand dollars in cash he was about to deposit. It is found by Potter, who sees it as an opportunity to destroy George, and he keeps the cash. George and Uncle Billy frantically search for the missing money, and George angrily takes out his frustration on his wife and children. He swallows his pride and goes to Potter for a loan, who not only refuses, but says he'll have Bailey put in jail.

Totally distraught, George drives through the snowy night and prepares to jump off a bridge. But the angel Clarence is there, and himself jumps in and is "saved" by George. He explains that he is George's guardian angel and can earn his wings by helping him. When George exclaims that he wishes he'd never been born, Clarence grants the wish. George, of course, is incredulous. They go back to town, which is now named "Pottersville." Not only is George not recognized by any of his old friends, the town has become run down and seedy, and they are treated with contempt or indifference. He goes to his home, only to find an abandoned, dilapidated house. Clarence takes him to his brother's grave, and explains that he died in a childhood accident, and was not saved by George. He finds Mary, an unhappy spinster, who runs and screams when he tries to tell her who he is.

George returns to the bridge, this time begging to live again. He realizes that he has been restored, and deliriously runs back to town. He goes to Mary and his children, when Uncle Billy arrives with a bushel of cash. Hearing that he needed help, the people of Bedford Falls have all contributed money for their friend George.

As the crowd gathers in the Bailey house, they happily sing "Auld Lang Syne", and hearing a Christmas tree bell ring, his daughter, Zuzu, exclaims, "My teacher says 'Every time a bell rings, an angel gets its wings.'"