A mysterious young woman arrives in Southport, North Carolina. She falls in love with a widowed store owner. But her dark past intrudes in her new life.
A terrified woman, Erin, flees her house in Boston, having been in the possession of a bloody knife. After taking shelter with a neighbor, she is at the bus station trying to flee town. She buys a bus ticket with her hair now cropped and bleached and stops in the small town of Southport, North Carolina. At the general store, she introduces herself as Katie Feldman. After getting a job as a waitress, and renting a small house on the edge of town, Katie befriends her neighbor, Jo. She meets Alex Wheatley who operates the local general store, and is a widowed father of two young children, Josh, who has a strained relationship with him, and Lexie. Alex soon gives Katie a bicycle so she won't have to walk. She over-reacts negatively to the kind gesture, not wishing to "owe anything to anyone".
It is not long before Katie and Alex start a relationship, and she becomes like a mother to Josh and Lexie. Meanwhile, Kevin Tierney, a Boston police detective, prepares wanted posters for a woman named "Erin" which describes that she is wanted for first-degree murder. Alex sees Erin's wanted poster in the police station and notices the picture bears a striking resemblance to Katie. He confronts Katie with the information, causing a huge fight - she attempts to explain that she was young and stupid and married a man who only hurt her - but they break up, and Katie moves out of her house.
As Katie is about to leave town, Alex intercepts her and says that he has fallen in love with her, begs her not to leave and promises to keep her safe. Katie reluctantly returns his love, and decides to stay in Southport (though still apprehensive of bringing danger upon Alex's family.) She tells Alex that she fled to Southport to escape her abusive and alcoholic cop husband. They got in a big fight and that she stabbed him in self-defense before she fled south in a panic, in hopes of finally escaping him and his abuse.
Meanwhile, Kevin is suspended for creating the wanted posters for crimes that weren't committed, whereupon it is revealed that he is Katie's (Erin's) abusive and alcoholic husband, still very much alive and well. Enraged, he breaks into Katie's former neighbor's home back in Boston and finds the phone number to the Southport restaurant where Katie works. Arriving in time for the town's Fourth of July parade, a severely intoxicated Kevin sees Katie kissing Alex, which enrages him. That night, Katie has a dream that she is standing on the docks watching the fireworks when Jo comes up and tells Katie that "he" is here. Katie wakes up in the convenience store next to a sleeping Lexie when Kevin suddenly appears and confronts her, demanding that she go back with him. She refuses and tells him to leave. Kevin pulls a gun and pours gasoline all over the store, with the intent to burn it down.
When he hesitates, Katie buys time by faking sympathy for him and agreeing to return home with him. When he lets his guard down, she pushes him into the water. A firework spark lands on the gasoline, igniting a fire that engulfs the store. Alex sees the burning store, quickly makes his way across the harbor by boat, and saves Lexie. Meanwhile, Katie tries to fight off Kevin; during the struggle, the gun goes off and kills Kevin, actually finally ridding her of him forever.
In the aftermath of the fire, Alex recovers several letters which were written by his late wife Carly before she died. The letters were prepared ahead of time for memorable events such as Josh's eighteenth birthday and Lexie's wedding day. Alex gives Katie a letter with the words "To Her" on the envelope. The letter explains that Alex must be in love to have given her the letter and she hopes that she feels the same way, and wishes that she could be there with them. Enclosed with the letter is a photo of Alex's late wife. Katie realizes that her neighbor "Jo" was the ghost of Carly watching over them.