Actiunea filmului se petrece in Shanghai, in timpul celui de al doilea razboi mondial, inaintea atacului japonez de la Pearl Harbor. Europa se afla sub dominatie germana, iar aproape toata China, mai putin Shanghai-ul, sub ocupatie japoneza.
Aici se duce o lupta crancena intre rezistenta chineza si fortele japoneze in aceasta lupta fiind infiltrati si spioni americani. Un spion american, Connor (Jeffrey Dean Morgan), este gasit mort. Prietenul sau, Paul Soames (John Cusack), sub acoperirea de jurnalist american, ajunge la Shanghai, pentru a descoperi cine l-a omorat si ce anume descoperise Connor inainte sa fie omorat. Shanghai este un film de razboi plin de suspans, actiune, idealuri...si dragoste.
