La película cuenta la historia de David (Liam Neeson) y Catherine Stewart (Julianne Moore), un matrimonio aparentemente sólido que vive en Toronto con su hijo adolescente, Michael (Thieriot) pero Catherine, empieza a sospechar que su marido la está engañando por lo que decide poner en práctica un plan, contratando a una joven e inteligente prostituta llamada Chloe, (Amanda Seyfried) con el fin de seducir a su marido haciéndose pasar por una estudiante.