SPOILER ALERT. You have been informed.
As the film begins, we see Owen (Rico Blanco) and Mariella (Angelica Panganiban) are fighting in a car by a lake. It appears that Owen has left his wife to be with Mariella, and is angry that Mariella is not willing to make the same sacrifice. The fight turns violent, and Owen has hit Mariella through the car window. Mariella tries to escape from the car, and the scene cuts to flashback.
We see Mariella telling her husband, Ivan (Dingdong Dantes), that her best friend, Samantha needs company and she drives off into the night. Later that evening, their daughter Angel (Sofia Villarama) comes to Ivan looking for her mother, and Ivan tells Angel that her mother has gone away.
There is a car that passes by in the area where a bloody Mariella is looking for help, in the middle of a rainstorm. The driver and his passenger are singing Christmas carols in the car, Mariella knows she is dead.
Mabel (Kris Aquino) owns an antique store. She is the only child of her mother, Adela (Helen Gamboa). It is revealed that Mabel’s only sibling, Marie (Sharlene San Pedro), was lost in an accident when they were children. Of late, Marie’s ghost haunts their home on the anniversary of her loss. Adela and Mabel visit a fortune teller, Manang Letty, to try to communicate with Marie, but fail.
One rainy day, Ivan meets Mabel as he splashes her with water from his car, and he offers to take her to her antique store. Over time, they begin to develop a relationship.
One year later, Ivan proposes, even though his annulment from Mariella is not yet over. Ivan takes Mabel to his home where Angel greets her icily.
The house help cannot help but compare Mabel and Mariella, and this makes Ivan angry. As Ivan apologizes in the car and proposes, Angel interrupts as Mabel and Ivan kiss. It begins to rain, drenching Angel. Mabel takes a cab home and passes through the lake where we last see Mariella. Mariella haunts the cab, appearing inside the cab as well.
While discussing their relationship in a restaurant, Samantha (Angel Jacob) spots Ivan, who notes that she has returned from New York. Samantha is dressed up to the nines, and as she expresses her interest in Ivan, Mabel becomes insecure. Meanwhile, Mabel’s attempts at winning Angel’s heart continues to be rebuffed.
On some poor, but well meaning advice from Mabel’s best friend, Anna (Bangs Garcia), Mabel buys Mariella’s red Prada bag at Anna’s store in a fit of retail therapy. Anna’s boyfriend, Dindo (Jhong Hilario), a security guard at the mall of Anna’s store, offers to help Mabel but instead sees an apparition of Mabel.
Later that evening, Mariella makes her presence felt through her bag at Ivan’s home. Angel wonders why Mabel has Mariella’s bag and demands an explanation. Mabel scans through Mariella’s pictures, noticing a black car that Ivan gave to Mariella as a gift. Shortly after, she sees an apparition of Mariella through the window.
At a loss at what to do, Anna suggests more retail therapy. As Mabel tries on a dress, Mariella makes her presence felt to Mabel inside the dressing room. Before Mabel could get out of her dress, Dindo calls Anna and Mabel to review CCTV footage that shows Mariella passing through a solid wooden door and following Mabel. Upon closer inspection, Mabel notices that the dress she tried on earlier, which she is still wearing, is the same dress as that on Mariella in her apparitions. Freaked out, the bag and the dress go into the trash bin at the mall entrance.
Samantha has been trying to seduce Ivan, after hinting at a one night stand on the date Mariella disappeared, but Ivan refuses her advances. Samantha tells Ivan that she knows about Mariella’s indiscretions with Owen, but that gets no response.
Anna, who is now taking Mabel home, freaks out when she sees Mariella, the bag, and her dress, suddenly appear in the back seat of her car. She stops the car and leaves the items by the opposite roadside. At the same time, Samantha “jumps” out her window after seeing Mariella in her apartment.
Ivan refuses to believe Mariella is dead. They fight over Mariella’s death after Mabel lets Ivan know that she has been seeing Mariella’s ghost. Mabel has brought a CD containing the footage. Mabel confronts Ivan, who still insists Mariella abandoned him and Angel. Mabel wonders why Ivan never bothered to look for Mariella in the United States.
Sometime later, Angel and Mabel reconcile, after Mabel rushes to her side at hospital. While this is happening, Marie haunts Adela. Mariella’s bag and dress appear at door just as Mabel goes home. While tending to Angel later that evening, the maid lets slip that she knows Mariella has died.
It is revealed later that Ivan witnessed his father (Ian Veneracion) commit suicide after seeing his lover cheat on his father. It appears that Ivan is not over this trauma.
Mabel and Anna turn to Manang Letty for advice, the bags having reappeared at their side. At a séance with Scooby-Doo like position switching. Mabel is told Mariella’s soul has been released, from its trap, and only way to set her soul free is to leave the bag in church. Mabel prays to God for assistance, leaves bag in church while with Ivan. They are told that only people without a conscience cannot see spirits.
An old lady who has been sleeping inside the church sees the bag and gets it. As she walks out of the church, the bag starts bleeding, and we see a hand grab the old lady by the neck.
Marie’s picture cracks as Mabel and Ivan reconcile at her home. Adela (Helen Gamboa) realizes that Mabel has been left in the cold from her affections, and they reconcile.
Anna suggests Mabel bring Ivan to Manang Letty. In the meantime, police find Samantha’s body just as Mabel and Anna drive by. Ivan is called by police as a person of interest. Dindo, who just also happens to be taking his rounds on a bicycle nearby, threatens Ivan with harm if Mariella were to visit her vengeance on Mabel.
At the antique shop, Dindo tries to convince Mabel to leave Ivan, saying he is there to protect Mabel from Mariella. As Dindo leaves, Mabel notices that a dresser is vibrating. A large mirror on the dresser shatters after a Mariella apparition, and Mabel is drenched.
Dindo, who is now doing his rounds, sees an apparition of Mariella going up the escalator, and is killed as he slides the wrong way down the escalator. At the wake, the appearance of Dindo’s many children by another woman turns Anna’s grief into anger, but has Mabel thinking Mariella is out to kill everyone who helps her as well.
Mabel confronts Ivan, who thinks Mabel is leaving him for Dindo. Ivan turns violent, and Mabel ends the relationship. Mabel still worries about Angel, however.
Trying to shake off the past, Anna buys Mariella’s car. Mabel seizes the keys to drive the car to Ivan and show him proof of her haunting, Mariella takes control of the car and the car disappears from the mall parking lot. Mariella takes Mabel to the lake and reveals that it is Ivan who assaulted her at the beginning of the film, not Owen, kills Mariella and has the car, with Mariella run over the edge and into the bottom of the lake.
As the apparition ends, Ivan calls, and tells Mabel that Adela is with him. She drives over to Ivan’s home to save her mother.
In the meantime, it is revealed that Ivan killed Owen, Mariella, Dindo, and Samantha. Mariella’s apparition appeared to Dindo and Samantha just before Ivan was to kill them.
Ivan catches Mabel and Adela as they try to escape, and assaults Adela just as Mabel escapes to a bathroom. Ivan is about to stab Adela as Mabel catches Ivan in time and they fight. Ivan overpowers Mabel and he throws her limp body onto the pool.
As Adela lies gravely injured, Marie appears to Adela, and morphs into Mariella. On the home CCTV, Ivan notices Mariella bringing Mabel to safety, and Mabel recovers just in time to knock Ivan into the pool. In the pool, Mariella grabs Ivan, taking him to the pool drain to drown.
As an epilogue, the remains of the car are found by the river, and Adela expresses relief at learning that Marie had led a good life until she met Ivan, and is comforted by knowing that her soul is at peace.
At dinner sometime later, Ivan’s ghost begins to haunt Mabel, and the screen cuts to black.