Lorsque Craig Schwartz, un marionnettiste sans avenir (John Cusack), est obligé d'accepter un emploi au bas de l'échelle pour boucler ses fins de mois, il découvre un passage secret dans son bureau qui mène à l'esprit de John Malkovich (qui joue son propre personnage). Après 15 minutes dans la conscience de Malkovich, Craig est rejeté en bordure de l'autoroute de New Jersey. Toutefois, la titillation euphorique d'être « dans la peau de John Malkovich » l'incite à partager ses nouvelles découvertes avec son épouse (Cameron Diaz) et sa collègue de travail (Catherine Keener) qui franchissent aussi le portail. Les deux finissent par tomber amoureuses et se servent de Malkovich comme intermédiaire.
Lorsque Craig découvre comment dominer Malkovich de plus en plus, l'acteur décide d'y entrer lui-même.