The British beauty plays a Russian woman with severe psychological issues who comes between famed psychiatrists Carl Jung and Sigmund Freud.
In one shocking scene, Knightley's character, Sabine, is violently spanked, and the star admits she picked up the phone to tell director Cronenberg she didn't feel comfortable accepting the role.
But after the filmmaker insisted the scene would not be sexual, Knightley came onboard - and indulged in vodka shots to build up her courage before the awkward take.
She tells The Hollywood Reporter, ""When I first read the script, I thought, 'The script was fascinating, and it's David (Cronenberg), and I really want to work with David, but I read those two scenes and just went, 'I don't think that I can do that,' particularly because it's the age of the Internet; it's gonna be everywhere; I don't want that out there'.
""I phoned him up to really turn it down... I said to him, 'Look, I love you, I love the script, I love the character, but I really don't know that I can play those scenes'... He said, 'Look, if I'm gonna do them, then they're gonna be clinical; they're not gonna be sexy, they're not gonna be voyeuristic in that way.' And I thought, 'OK, well I can understand that. As long as it's clinical and it's not some, sort of, weird sexy spanking thing.'
""There was a box which he hit, so he was nowhere near me, thank God! I did actually say to (co-star) Michael (Fassbender) before one of the scenes - I was like, 'I've got a security guard outside. You touch me and he's gonna break your legs!' And he was like, 'Keira, you're tied to a bed. You're not really in a position to say that.'
""(I had) a couple of shots of vodka - definitely - beforehand, and then a couple of glasses of champagne as a celebration of never having to do that again!""
It seems Cronenberg is a master of persuasion - he recently confessed to flying to Britain and coaxing Jeremy Irons into playing twisted twins in thriller Dead Ringers after 30 other stars had turned the creepy roles down.