In December 1941, just before the entry of the United States into World War II, an American agent from the Naval Intelligence Office (Cusack) arrives in Shanghai to find his friend Conner (Jeffrey Dean Morgan) was recently murdered. Determined to find out who killed Conner and why, he begins working at the Herald using the alias Paul Soames, a Nazi-sympathizer cover he used while stationed in Berlin. He meets Anthony Lan-Ting (Chow Yun-Fat) an influential crime lord and Captain Tanaka (Ken Watanabe) at the German embassy in Shanghai, during an invitation-only event. He later befriends Anthony when he saves him during an attack on Japanese officers by the Chinese Resistance at a night club.
Paul realizes that it was Anthony's wife, Anna (Gong Li) who actually organized the attack and is the leader of the resistance. He then decides to help her pass on messages. After finally meeting up with Conner's contact in the Japanese Consulate, Paul finds out that Conner had an affair with a Japanese girl named Sumiko (Rinko Kikuchi) and after searching her place, Paul uncovers numerous photos, which Conner took, in a darkroom nearby. Some of the photos include Captain Tanaka, other Japanese officers and the aircraft carrier Kaga.
Unconvinced that Sumiko betrayed Conner, he determines to find the girl and get the answers he seeks. After a few more encounters with Anna, Anthony, Captain Tanaka, and investigating at an opium house, Paul realizes that Sumiko was Captain Tanaka's lover and was seduced by Conner to spy for him. Paul's cover is blown when Conner's contact is arrested, and Paul gets interrogated by Captain Tanaka regarding the whereabouts of Sumiko, whose location he does not know. After being released, Anna takes Paul to a safe house where she has been hiding Sumiko, who is on the verge of death due to withdrawal from opium and possibly other illnesses.
Outside, Anthony Lan-Ting arrives with Captain Tanaka who he gave away the location of the safe house. It was the only way for him to save Anna from arrest. Inside the safe house, Tanaka informs Paul that the Japanese fleet started attacking Pearl Harbor one hour earlier and that the invasion of Shanghai is also underway. Tanaka admits to killing Conner, but only out of jealousy as he found out about Conner and Sumiko. A visibly distraught Tanaka asks for Paul's help in administering drugs to ease Sumiko's death. After Sumiko dies, everyone gets ready to leave, but Tanaka wants to question Anna which infuriates Anthony. He then guns down Tanaka's bodyguards and seriously wounds Tanaka himself. Before he can kill Tanaka, Anthony is fatally wounded by a dying bodyguard.
Leaving behind a wounded Tanaka, Paul drives the Lan-Tings away through the burning streets of Shanghai and with his last words, Anthony asks Paul to take Anna out of Shanghai, which he successfully does. Before getting on the ship, Paul and Anna encounter Tanaka once again, but Tanaka decides not to acknowledge them, perhaps because Paul helped him at Sumiko's deathbed and spared his life after being shot. It is revealed later that both Paul and Anna, at some point, returned to Shanghai.John Cusack as Paul Soames
Gong Li as Anna Lan-Ting
Chow Yun-fat as Anthony Lan-Ting
Jeffrey Dean Morgan as Conner
Ken Watanabe as Captain Tanaka
Rinko Kikuchi as Sumiko
David Morse as Richard Astor
Franka Potente as Leni
Hugh Bonneville as Ben Sanger
Andy On as Yum
Race Wong as Cabaret performer
Rosanne Wong as Cabaret performer
Gemma Chan as Shin Shin
Benedict Wong as Juso Kita
Christopher Buchholz as Karl Müller
Ronan Vibert as Mikey
Nicholas Rowe as Ralph
Don Tai as Lan-Ting's bodyguard (uncredited)
Dean Alexandrou as Distraught husband (uncredited)
The film was originally intended to be shot on location in Shanghai; however, due to the controversial time period in which the film is set, The Weinstein Company's permits were revoked by the Chinese government one week prior to the scheduled start of filming. Thus, the film crew had to relocate to Bangkok, Thailand, where an elaborate two-block set was built.
Shanghai received negative reviews. Review aggregator Rotten Tomatoes gives the film a 4% score, an average rating of 4.2/10, based on 23 reviews. The site's consensus states: "Shanghai is crippled by a weak story and fatally undermined by clunky direction, making for a period political drama that lacks all of its key components." On Metacritic, the film holds a score of 36 out of 100, sampled from 14 critics, signifying "generally unfavorable reviews".