Acţiunea se petrece în Shanghai, în timpul celui de-al Doilea Război Mondial, înaintea atacului japonez de la Pearl Harbor. Europa se afla sub dominaţie germană, iar aproape toată China, mai puţin Shanghai-ul, sub ocupaţie japoneză. Aici se duce o luptă crâncenă între rezistenta chineză şi forţele japoneze, în această luptă fiind infiltraţi şi spioni americani. Un spion american, Conner (Jeffrey Dean Morgan), este găsit mort. Prietenul său Paul Soames (John Cusack), sub acoperirea de jurnalist american, ajunge la Shanghai, pentru a descoperi cine l-a omorât şi ce anume descoperise Conner înainte să fie omorât. Shanghai este un film de război plin de suspans, acţiune, idealuri…şi dragoste.