Jeremy (Jude Law) runs a cafe in New York City frequented by Elizabeth (Norah Jones), who finds out from Jeremy that her boyfriend has dined there with another woman. Elizabeth returns to the cafe several times, and she and Jeremy become close. Angry and heartbroken, Elizabeth gives her keys to Jeremy, in case her ex-boyfriend comes to collect them, and takes off for unknown parts.
Going by the name of Lizzie, she takes a bus to Memphis, where she takes two jobs, in a cafe and in a bar, to save money to buy a car. She writes postcards to Jeremy without revealing where she lives or works. Jeremy tries to find her by calling all the restaurants in the area, but fails.
One night at the bar she encounters a cop Arnie (David Strathairn) grieving about the fact that his wife, Sue Lynne (Rachel Weisz), has left him. Arnie confides in Lizzie that he has tried to quit drinking many times. After drunkenly threatening Sue Lynne with his gun, he crashes his car into a post and dies. Lizzie comforts Sue Lynne, and the next day Sue Lynne leaves town, giving Lizzie a large tip to put toward buying her car.
Now going by the name Beth, she gets another waitress job, this time in a casino. It is here we are introduced to poker player Leslie (Natalie Portman), to whom Beth lends her savings for gambling after Leslie promises to either win the game, or give Beth her car. Leslie ends up giving Beth her car, saying she lost the game. Beth agrees to give Leslie a ride to Las Vegas, where Leslie's father lives, so he can lend her money she needs to start gambling again.
Leslie gets a call from the hospital, answered by Beth, informing Leslie that her father is dying. Leslie does not believe it, believing it to be a ruse to cause her to go visit him. They go to the hospital anyway, and at Leslie's request, Beth goes inside alone to check, where she finds out that Leslie's father had died the night before. Leslie wants to keep the car because it was really her father's, and confesses that she lied about losing the game. She pays Elizabeth the money she had originally promised, and she uses it to buy a car.
Elizabeth returns to New York to find her ex-boyfriend's apartment for rent. She crosses the street to the cafe, and discovers Jeremy has been waiting for her, and has a space reserved for her at the counter. They talk, and it is discovered that they actually have feelings for each other.