Mercenary thief Laure Ash (Rebecca Romijn) participates in a diamond heist at the 2001 Cannes Film Festival in France. The plan is for Laure to steal a necklace of valuable diamonds from the ensemble of a female attendant named Veronica (Rie Rasmussen). Posing as a French photojournalist, Laure gains access to the festival gathering where she lures Veronica to the ladies room where she begins to seduce her in a stall, during which Laure's two accomplices "Black Tie" (Eriq Ebouaney) and Racine (Édouard Montrouge), plus a janitor co-conspirator, provide various support; while Black Tie, disguised as a security guard, subdues Veronica's bodyguards he sneaks into the ladies room and takes the diamonds as Laure removes them off Veronica and drops them on the floor where Black Tie puts them in a bag and replaces them with glass replicants, while Racine, dressed as another security guard, monitors the events from outside the ladies room. When the deception is discovered, Laure instead double-crosses her accomplices and escapes to Paris with the diamonds. Black Tie tries to stop her but gets shot by a security guard and gets arrested.
In Paris, Racine persues Laure and tries to catch her to get her to reveal where she has hidden the diamonds. Through a series of events, Laure escapes to a country house where she is mistaken for her own doppelgänger, a missing Parisian woman named "Lily" (also portrayed by Romijn) who had recently disappeared. While Laure luxuriates in a tub in Lily's parents home, the real Lily returns and commits suicide while Laure secretly watches, leaving Laure the opportunity to take her identity for good and leave the country to America. On the plane to the USA, Laure meets a man seated next to her whom she introduces herself as her her alias Lily.
Seven years later, Laure (still in her identity as "Lily") resurfaces in Paris as the wife of Bruce Watts, the new American ambassador to France (Peter Coyote). After arriving in France, a Spanish paparazzo named Nicolas Bardo (Antonio Banderas) takes her picture. The picture is displayed around Paris, and Black Tie (recently paroled from prison) spots Bardo's photo while in the middle of killing Veronica by throwing her into the path of a speeding truck. With Laure exposed to her two vengeful ex-accomplishes, she decides to frame Bardo for her own (staged) kidnapping so she can claim a ransom that Bruce will pay for her release and flee Paris once again to begin a new idenity. Bardo is further manipulated by Laure into following through with the "kidnapping", and in the process, they begin a sexual relationship.
The pair eventually meet with Bruce for an exchange on a bride on the Saine, however, Bardo has a crisis of conscience at the last moment and sabotages the scheme instead of killing Bruce. In retaliation, Laure executes both Bardo and Bruce, only to be surprised by her ex-accomplices afterward, whom promptly beat her up and throw Laure off a bridge to her seeming death in the river below....
However, in an extended twist ending, the entirety of the movie's events after Laure enters the bathtub in Lily's home rewind and are revealed to be a dream or premonition of the entire seven years. Laure suddenly finds herself back in the bathtub at Lily's parents house where she is shocked to find herself back to where she began her new life. Laura spies Lily entering the home as before, but this time she stops her from committing suicide and gives Laura her plane ticket to America and tells her to rebuild a new life for herself there.
Seven years later in Paris, Laure and Veronica, who is revealed to have been Laure's partner/lover all along, chat about the success of their diamond caper. All of a sudden, Black Tie and Racine arrive seeking revenge, but by a twist of fate, they are killed by the same truck that killed Veronica in Laure's alternate reality. Bardo, witnessing all these events, introduces himself to Laure, swearing that he has met her before, with Laure replying "Only in my dreams".