During his nightly TV weather forecast on February 1, meteorologist Phil Connors (Bill Murray) confidently reassures Pittsburgh viewers that an approaching winter storm will miss western Pennsylvania completely. He then sets off with news producer Rita Hanson (Andie MacDowell) and cameraman Larry (Chris Elliott) for Punxsutawney, Pennsylvania to cover the next morning's Groundhog Day festivities. Phil makes no secret of his contempt for the assignment, the small town, and the "hicks" who live there.
On February 2, Phil awakens at his Punxsutawney bed & breakfast to Sonny & Cher's "I Got You Babe" on the clock radio and the declaration, "It's Groundhog Day!" He tapes a half-hearted report on Punxsutawney Phil and the town's festivities. Rita wants to stay and cover some of the other events, but Phil wants to return to Pittsburgh immediately. The blizzard—the one that Phil predicted would miss the area—resolves the issue by blanketing the region in snow, stranding them in Punxsutawney. Phil shuns the celebrations and retires to bed early.
Phil wakes to "I Got You Babe" and the same announcement from the radio, and soon discovers the day's events repeating exactly as before. Thinking it is a bad dream, Phil relives the day and returns to bed, only to discover when he wakes, it is still Groundhog Day. He finds he is trapped in a time loop that no one else is seemingly aware of. Phil realizes there are no consequences for his actions, and spends the first several loops in rambunctious behavior, such as binge drinking, one-night stands, and reckless driving. However, Phil soon becomes depressed being stuck in the loop, leading to him to find ways to commit suicide to end the loop, including electrocuting himself with a toaster in a bathtub, and stealing Punxsutawney Phil and driving off a cliff. Even with his apparent deaths, he still wakes up to "I Got You Babe" on February 2.
Phil tries to explain his situation to Rita, for whom he has feelings. To demonstrate his plight to Rita, he points out all the trivial actions of the various townsfolk he has memorized due to being stuck in the loop. Rita takes sympathy and they spend the entirety of one loop together, ending up falling asleep on Phil's bed that night. However, Phil still wakes up alone at the start of February 2. He decides to use his knowledge of the day's events to try to better himself and the lives of the townsfolks. Over many loops, he learns how to play the piano, sculpt ice, and speak French. After finding himself unable to prevent the death of a homeless man over several loops, he starts to arrange his actions throughout the day to avert similar accidents and disastrous situations that otherwise would have occurred to the other Punxsutawney residents.
Ultimately, on one loop, Phil eagerly attends the Groundhog Day festivities, and gives a very eloquent report that causes all of the other news-stations to turn their cameras to him, amazing Rita. Phil and Rita spend the rest of the day together, with Phil impressing her with his apparent overnight transformation through his contributions to the festivities and helpful nature to the townsfolk. That evening at the town's Groundhog Day dinner-dance, she "wins" Phil with the high bid at the charity bachelor auction. Phil makes a beautiful snow sculpture of Rita's face, and tells her that no matter what happens, even if he is doomed to continue awakening alone each morning forever, he wants her to know that he is finally happy, because he loves her. They retire together to Phil's lodgings.
Phil wakes to "I Got You Babe" again, but finds Rita is still in bed with him, and Punxsutawney covered in a fresh blanket of snow; it is February 3 and he has been able to escape the time loop. As they walk out together and marvel at the peaceful, beautiful town, Phil comments to Rita that they should live there—but will rent to start.