In the town of Brixton, Georgia, widow Annie Wilson (Cate Blanchett) is a clairvoyant fortune-teller. Jessica King (Katie Holmes), the fiancée of the local school’s principal, Wayne Collins (Greg Kinnear), disappears.
Annie receives a vision revealing that Jessica has been killed and her corpse thrown into a pond. She informs local sheriff Pearl Johnson (J.K. Simmons) of her vision, and despite his skepticism, Johnson searches a pond at the home of Donnie Barksdale (Keanu Reeves), the abusive husband of one of Annie’s clients, Valerie (Hilary Swank). Donnie had previously threatened Annie and her three children after Annie advised Valerie to leave him. Valerie permits the search while Donnie is absent, but he returns while the search is proceeding. The police find Jessica’s corpse in the pond and Donnie is arrested for her murder.
During his trial for Jessica’s murder, it is revealed that Jessica and Donnie had an affair. Donnie is convicted and sent to prison. Buddy Cole (Giovanni Ribisi), a mentally ill acquaintance of Annie’s, harbors a hatred for his father, and tries to explain to Annie why, but Annie is preoccupied and refuses to listen. That evening, Buddy’s mother calls Annie to come to their house, as Buddy has snapped and has his father bound to a chair. Buddy sets his father on fire, and it is revealed that Buddy’s father sexually abused him as a child. Buddy is eventually taken to a mental hospital.
Later, Annie receives another vision revealing that Donnie is innocent. She asks prosecutor David Duncan (Gary Cole) to reopen the case. After Duncan declines, Annie counters that if he does not do so she will reveal David and Jessica’s affair, which she witnessed. Duncan attempts to bribe Annie in exchange for her silence, but Annie refuses.
Annie tells Wayne that Donnie is not responsible for Jessica’s death, and that Duncan will not reopen the investigation. At Wayne’s suggestion, he and Annie drive out to the pond that night, where Annie learns from a vision that Wayne is actually the murderer. Wayne confesses to Annie that he was angry after he discovered that Jessica was cheating on him with Donnie. Wayne attempts to kill Annie by striking her in the head with a flashlight, but Buddy appears and knocks him out. Annie and Buddy lock the unconscious Wayne in the trunk of Annie’s car.
To stop her head wound from bleeding, Buddy uses a baby’s bib that Annie had lent him earlier. The two drive to the police station. Annie tells Buddy that he will have to return to the mental hospital, and he waits in the car while she enters the station. When she returns to the car with the police, Buddy has disappeared. When Annie explains to Johnson what happened at the pond, he informs her that Buddy could not have aided her, as he had committed suicide at the mental hospital earlier that day.