Rose Collins (Susan Sarandon) runs into an old high school friend while Christmas shopping in New York City. They exchange small talk and Rose says she is married and has a large family. Smiling uncomfortably, she quickly says goodbye and is next seen entering a hospital. Rose walks down the hall and enters a decorated room where her mother Helen (Una Kay), a patient suffering from the advanced stages of Alzheimer's, sits vacantly in her bed. Rose gives Helen some presents and looks across to another room with a comatose patient. Noticing the room is barren and lonely looking, she walks in and hangs an angel figurine on the window. To her surprise, she turns around to see a visitor who introduces himself as Charlie Boyd (Robin Williams) sitting by the doorway. After exchanging some polite but awkward words, she excuses herself from the room.
A New York cop, Mike Riley (Paul Walker), sees a beautiful woman, Nina (Penolope Cruz), walking down the sidewalk. He pulls his car up beside her and asks if she needs a lift. After a little verbal banter, the audience realizes that they are not strangers, but in fact joking fiances about to get married.
Rose enters her workplace where we learn, through her assistant's remarks, that she is divorced, her father is dead, her sister cannot spend Christmas with her, she sees a shrink, and has been spending the past 10 years looking after her mother. Half serious, her assistant tells her that she "needs to get laid." We learn that Rose has a young coworker, Marco (Daniel Sunjata), who is interested in her. Rose thinks this suggestion is absurd due to their age differences, but later agrees to go on a date with him.
Mike drops Nina off at work. As he is driving away he sees her embrace another man. Mike automatically assumes the worst.
Jules Calvert (Marcus Thomas), sits in a diner talking to Glenn (Merwin Mondisir), about the best Christmas he ever had. It was when he was 14 years old in the hospital due to a broken nose. He talks about how fun and friendly the staff was. Glenn asks about money that Jules owes him and tells Jules to meet him later.
Mike enters the same diner to meet his partner Dennis (Sonny Marinelli) for coffee. Artie, a 50-something male waiter (Alan Arkin) gives Mike coffee and complimentary cookies. Artie seems to recognize Mike and treats him with unexpected affection. Mike and Dennis assume the Artie is gay and has a crush on Mike. When they are leaving the diner, the Artie suggests that he had some type of relationship with Mike before and keeps exclaiming, "It's been such a long time!" No longer wanting to humour the old man, Mike and Dennis tell him he must be mistaken and should stop his crazy behaviour.
Rose and Marco go on a date. At dinner, Marco suggests that they go back to Rose's house for "a nightcap." She nervously agrees. Marco quickly makes it clear that he wants to sleep with Rose, and although she admits the attraction is mutual, she is too uncomfortable and asks him to leave.
Back at Mike and Nina's apartment, Nina and the man she was earlier spotted hugging are decorating a Christmas tree together. Mike enters the apartment and pushes Nina's friend into the Christmas tree, blowing up in a jealous rage. Nina angrily explains that her friend was only there to help her surprise Mike by decorating the tree. Mike still doesn't believe her, and it takes her friend to openly admit that he's gay in order for Mike to fully apologize. Nina leaves and Mike picks up a broken glass angel ornament from the toppled tree.
In another part of New York, Jules enters his run-down apartment. Ignoring his landlord who says she's going to evict him. He shuts the door, sits down and looks at old pictures of him and his mother as well as a photo of him at the hospital on Christmas Day.
Mike looks out his apartment window and sees Artie, the old man from the diner, staring up at him. Perplexed and wanting to get to the bottom of the matter, Mike invites Artie up to his apartment to talk. Artie hands Mike a wrapped gift.
After Marco has left, Rose walks down the street to clear her head and stumbles upon a lively house playing music, with decorations and people dancing in the window. Intrigued, she walks up the stairs to get a closer look when a woman and her children come up the stairs. Startled, Rose helps the woman bring things into the house. Once inside, Rose notices another woman in the living room, crying. It's Nina. Rose asks Nina why she is crying. Assuming Rose is a family friend, Nina confides in her explaining that although doctors said it was almost impossible, she thinks she is pregnant, but has just left her fiance. The family starts to sit down to dinner, and Rose, lonely and yearning for love, entertains the idea that she might be able to have dinner with Nina's family. As Rose hopefully enters the dining room, the family quickly realizes Rose is a stranger. Mortified, Rose runs out of the house. Nina follows and convinces Rose to accompany her to a nearby bar to talk. The two chat, and Rose gives Nina some advice about the importance of holding on to true love.
At Mike's apartment, Artie is talking about his wife and how she had the same habits as Mike. Unexpectedly, Dennis arrives at Mike's door in the hopes of cheering him up. Dennis is worried to see Artie there, but reluctantly leaves at Mike's request. Artie then explains to Mike that the reason he is following him is because Mike is his reincarnated wife. Scared and horrified by the old man's passionate admission, Mike throws Artie out of the apartment.
After listening to the advice of Rose, Nina visits Mike to give him one last chance. She explains that the only way for their relationship to survive is if Mike can let go of his jealousy and trust her. Mike doesn't seem to understand, and instead interrogates Nina about men who are attracted to her. Nina leaves and Mike follows. She gets into a cab and Mike turns around to find Artie still lingering outside his apartment. Angry, he takes his aggression out on Artie, pushing him and causing Artie to collapse. Artie is rushed to the hospital with Mike by his side in the ambulance.
Rose is still at the bar and decides to participate in an open-mic contest where contestants share stories about their hatred of Christmas. Instead of giving a comical performance as expected, she talks about her ex-husband, their unexpected pregnancy, and the death of her premature baby on Christmas. She wins the contest out of sympathy and is given a miniature Christmas tree.
Jules meets Glenn at an abandoned theatre where Glenn introduces Jules to an ominous man "who breaks hands." Oddly enough, Jules asks the man to break his hands. He does this because he wants an excuse to go to the hospital where he hopes there will be a Christmas party like before.
Rose takes her miniature Christmas tree to the hospital to visit her mother again. Feeling emotional, she tells the doctor that she desperately wishes her mother could give her a sign that she understood. The kind doctor tries to comfort Rose by assuring that Helen still senses people and has emotions. Rose plugs in the Christmas tree. The lights suddenly burn out and Rose momentarily loses her composure, throwing the tree onto the floor. Rose looks across the hall to see the comatose man she visited before. Feeling sorry for him, she walks to the doorway and whispers, "I love you."
Rose leaves the hospital and walks down to a nearby pier, contemplating life. She steps to the edge. A man appears beside her. It's Charlie, the man she saw visiting the patient across the hall. They talk and Charlie says he used to be a priest. He seems well-intentioned and they go to Rose's house to talk some more.
Back at the hospital, Dennis shows up and explains that he did a background check on Artie. It turns out that Artie went to jail for manslaughter after throwing his wife's male friend down a flight of stairs in a jealous rage. Artie's fearful wife sped away in a car, got into an accident, and died as a result. Mike clearly sees how Artie's once jealous nature parallels his own. Mike has a strange feeling that there is a reason him and Artie have been brought together, and Mike is determined to find out more.
At Rose's house, her and Charlie share their greatest wishes. Rose light-heartedly says her wish is to "make it through the night." Charlie reveals a more serious wish not to die alone.
Jules is still at the hospital, but wants to leave after he learns there will be no Christmas party. The doctors suspect that Jules broke his own hand intentionally and request that he stay at the hospital for a psychological evaluation.
Charlie tells Rose that he left the priesthood because he lost his faith in God. Rose reveals her faith is shaky because no matter how hard she tries, her mother won't give her sign that she's mentally aware.
Increasingly irrate, Jules becomes hostile at the hospital and is restrained by security guards.
While Mike sits beside Artie's bed, he is greeted by Artie's son, Paul (Rob Daly). Paul tells Mike that his father has been mentally unstable since the death of his mother and is filled with guilt over his past actions. Paul says every Christmas, Artie has delusions about his reincarnated wife.
Nina buys a pregnancy test.
Jules nostalgically watches a mother caring for her son at a hospital.
Mike and Paul talk about Artie's past. Paul explains that Artie is trapped in the past and can't let go because of the guilt he feels for his wife's death. Paul says Artie yearns for his wife's forgiveness.
Clothed and on opposite ends of the bed, Rose and Charlie wake up in her room. Charlie looks at a necklace with a cross around his chest. Rose jokes that she survived the night, which was her wish. Charlie says she must have a greater wish than that and Rose admits she wished her life mattered. Charlie insists that her life has tremendous meaning because she cares for so many people. Charlie brings up the fact that she told the patient at the hospital that she loves him. Rose is surprised because Charlie wasn't in the room at the time. Charlie says Rose has restored his faith in God. Charlie then tells Rose that her mother spoke to him and wants Rose to let go and live her life. Rose thinks Charlie is crazy and says she's going to call the police. She doesn't believe Helen talked to Charlie because as far as she's concerned, Helen is incapable of communication. Sad that Rose doesn't believe him, Charlie says "I love you" and leaves.
Jules talks to a psychologist at the hospital and explains his childhood of abuse at the hands of his stepfather. We learn that he was probably at the hospital because his stepfather broke his nose. Jules says that his mother never came to pick him up, and he subsequently left home. He thinks his mother chose his stepfather over him and hasn't spoken to her since. The psychologist tells Jules the only way she'll let him leave the hospital is if he calls his mother. Jules picks up the telephone.
In another part of the hospital, Mike is in Artie's room. Knowing that Artie might still be convinced that Mike is his wife, Mike decides to tell Artie that he forgives him for everything and kisses his forehead. Artie breathes a sigh of relief. Mike leaves the hospital to find Nina.
Nina takes a pregnancy test at her sister's house.
While cleaning her room, Rose finds Charlie's necklace under a pillow. She leaves the house to find him.
Mike shows up at Nina's sister's house to find her. Nina's pregnancy test is positive. He tells her that he finally understands and is a changed man. He wants her to give him another chance. He accepts that Nina might not be able to do this, and says no matter what he wants her to be happy. He walks away, leaving Nina with a decision to make.
Rose decides to go back to the hospital in the hopes that Charlie is there. When Rose asks a nurse if she has seen a visitor named Charlie, the nurse says Rose is mistaken. Charlie is the patient's name and he never gets visitors. Rose takes a closer look at the patient and realizes that it is indeed the same man, but in a withered and barely recognizable state. The audience is left to deduce that Charlie had an out of body experience in order to communicate with Rose. Charlie opens his eyes and smiles. Rose tells him that "it's okay to let go." Rose takes Charlie's hand and places the necklace with the cross in it. She thanks Charlie. Charlie dies. She has fulfilled Charlie's wish not to die alone.
Mike returns to his apartment and opens the gift that Artie brought him. He opens it to find a glass angel and redecorates the tree with it. Nina enters the apartment. She says she wants to give Mike his gift. He asks "where is it?" Nina places his hand on her stomach. They embrace and kiss.
Jules is seen leaving the hospital.
Rose walks back to her mother's room and sees the doctor feeding her mother. Not knowing that Rose is behind him, he tells Helen that he wants to ask Rose out on a date. Rose asks the doctor what his first name is and he says, "Matthew." Rose tells Matthew she would love to go on a date. Rose talks to her mother and asks for her approval, knowing she will probably not reply. To her bewilderment, Helen squeezes her hand. Rose embraces her mother.