Catherine (Julianne Moore) planeja uma festa surpresa para o marido, David (Liam Neeson). Só que ele perde o voo para Nova York, o que provoca uma grande decepção. Na manhã seguinte, ela lê no celular do marido uma mensagem de texto que revela que ele perdeu o voo para que pudesse tomar uns drinks. Pouco tempo depois, ela pergunta a David se perdera o voo intencionalmente, o que ele nega com convicção. A partir de então Catherine passa a crer que o marido tem um caso. Decidida a testá-lo, ela contrata Chloe (Amanda Seyfried), uma garota de programa, para seduzi-lo. Só que os encontros cada vez mais regulares entre David e Chloe e a intimidade crescente entre eles aumentam cada vez mais o ciúme de Catherine.