故事发生在繁华的大都市纽约,一连串凶杀案的发生吸引了重案组的注意,因为案情牵扯到了同性恋者,因而在圈内引起了极大的反响,警方受到的压力越来越大,最终决定派出警员史蒂夫(阿尔·帕西诺 Al Pacino 饰),伪装成同性恋者打入圈子查找线索。 伪装的身份让史蒂夫感到不堪重负,每天对着形形色色稀奇古怪的男人,史蒂夫内心里的绝望和压抑渐渐积累,与此同时,他对局里严刑逼供嫌犯思齐普李(杰·阿克沃内 Jay Acovone 饰)的行为感到十分不满,随着时间的推移,史蒂夫的精神走到了濒临崩溃的边缘。最终,一条重要的线索渐渐浮出水面,然而这却并没能让史蒂夫松一口气。在炎热的夏天,纽约市的哈德逊河中出现了男性的尸体。警方怀疑这是一名连环杀手所为,他在西村的Eagle's Nest、Ramrod 和 Cock Pit 等酒吧里抓捕同性恋男子,然后将他们带到廉价的出租屋或汽车旅馆,将他们绑起来,将他们刺死。埃德尔森队长要求与受害者一样身材苗条、黑发的史蒂夫·伯恩斯警官深入肉类加工区的同性恋S&M和皮革酒吧 世界,以追查凶手。伯恩斯接受了这项任务,并将这一备受瞩目的案件视为快速推进自己职业生涯的一种方式。他在该地区租了一套公寓,并与邻居泰德·贝利(Ted Bailey)成为了朋友,泰德·贝利是一位苦苦挣扎的年轻同性恋剧作家。伯恩斯的卧底工作对他与女友南希的关系造成了影响,因为他无法告诉她当前任务的细节,而且他与泰德发展的友谊,泰德本人与他嫉妒和专横的舞者男友格雷戈里有关系问题。伯恩斯错误地迫使警察审问服务员斯基普·李(Skip Lee),后者受到恐吓和殴打以逼供,随后警方发现斯基普的指纹与凶手的指纹不符。伯恩斯对这种暴行感到不安,他告诉埃德森上尉,他不同意这项任务,这样人们就可以仅仅因为同性恋而遭到殴打。伯恩斯因卧底工作而精疲力竭,几乎要辞职,但埃德尔森说服他继续调查。埃德尔森反过来斥责了审问斯基普的警官。根据新的线索,伯恩斯调查了哥伦比亚大学的学生,这些学生曾与前受害者之一(一位大学教授)一起学习。伯恩斯认为他已经找到了连环杀手:斯图尔特·理查兹,一名患有精神分裂症的同性恋音乐研究生。他闯入自己的公寓,发现了一盒写给父亲的信。伯恩斯后来在莫宁赛德公园遇见了理查兹,并与他发生性关系。在伯恩斯要求他脱下裤子后,理查兹试图刺伤他,但伯恩斯刺伤了他的侧面,使他丧失了行动能力。伯恩斯将理查兹拘留,他的指纹与其中一次刺伤事件中发现的指纹相符。不久之后,泰德残缺不全的尸体被发现。警方以情人的争吵演变成暴力事件为由,驳回了这起谋杀案,并对格雷戈里发出了逮捕令,伯恩斯早些时候因格雷戈里的嫉妒而与格雷戈里发生了冲突。伯恩斯现已晋升为侦探,搬回南希身边。当伯恩斯在浴室里刮胡子时,南希试穿了他的皮夹克、帽子和飞行员太阳镜——这正是凶手所穿的。伯恩斯盯着镜子里的自己,然后短暂地看了一眼镜头。