The movie begins with John Lone (Billy Fong) frantically searching for someone on a boat that is about to leave Shanghai as the Japanese invade in 1937.
Then we flash back to a scene where an American boss and his young son are touring a worksite. The young American boy, Dawson Cole, slips away from his father to take part in a shell game that one of the young Chinese is running. He wins, but when his father comes looking for him, the young Chinese boy is punished, and Dawson is shocked. The two become friends, but in the course of their adventures, discover a Chinese gangster's opium stores. The gangster responds to this by killing Dawson's father in front of him, and Dawson and his young friend later take revenge on the gangster.
Fast-forward to 1930: Dawson returns to Shanghai as an adult and sets about the process of taking control of his father's business. After he's spent a few days doing this, he's kidnapped, blindfolded, taken to a bathhouse and stripped naked. When he's finally released in the steaming hot water, his equally naked old friend, now calling himself Billy, confronts him about why it's taken him so long to get back in touch. Shortly they are laughing together again and then we cut to the two of them going out for a meal together. A gangster challenges Billy and makes rude comments about him hanging around with foreigners. Dawson begins to wonder what Billy's new business is, but then the triads come to lean on Dawson and Dawson and Billy have to work together to get them to leave him alone. The two go into business together, and even though Dawson would prefer to run a legitimate business, Billy drags him deeper and deeper into the world of organised crime, getting more and more blood on both of their hands. Dawson courts a girl named Mei, but the primary relationship in his life is definitely that with Billy, and everything comes to a head when Billy manages to make an arranged marriage with a prominent man's daughter. Dawson gets amazingly drunk at the wedding, upsets his girlfriend and says horrible things to the bride, telling her that he knows her husband better than she does and he knows what he's really like.
Billy throws him out and says he never wants to see him again. The next time we see Dawson, he is stoned out of his mind in an opium den. But then the Japanese invade, and Billy gets his wife and Dawson's girlfriend out of the city, and is about to escape himself when he changes his mind, leaves the safety of the boat and shoots and threatens his way out of the barricade to run back into Shanghai, which is being overrun by the Japanese. He finds Dawson in the opium den, badly wounded--the only survivor of an attack by Japanese soldiers--and drags him out of there, taking him off to a more secure location to nurse him. Dawson tries to apologise for his past behaviour, but Billy forgives him and says that Dawson was just doing what he told him to do the way he always has. The two joke about how they must always be together and Dawson says he'd like to take Billy to America but Billy would have to be the one to always do as he was told, and Billy says he'd like that, he's tired of thinking, and that he's lost everything but he's almost happy about it, because they can be like they were as boys again, with everything ahead of them. The movie ends with the two of them running after a train, which Dawson jumps aboard, and Billy runs after it, to the accompaniment of a beautiful romantic theme, until he can grab Dawson's hand and get on the train. The movie ends with them on the train, holding onto each other.