上世纪八十年代末,随着侯孝贤的《悲情城市》在威尼斯获奖并取得票房成功,宝岛电影人意识到,曾经的话题禁忌早已不再,他们可以拍摄之前不敢拍摄的题材。这启发了杨德昌,让他决定拍一部属于自己时代的史诗之作。
《牯岭街少年杀人事件》取材自上世纪六十年代初台北牯岭街发生的一起真实杀人事件。杀人的少年名叫茅武,是杨德昌的同校同学,他与分手的女友在牯岭街谈判不成,连刺七刀杀死了她。这一事件在当时传遍全省,对杨德昌那代人影响很大,但对于杨德昌的父辈却并没有什么影响。因此,杨德昌认为这是一个只属于自己时代的记忆,也是他想要拍摄的那代人的故事。
电影的剧情除了杀人以外,皆和真实事件截然不同,但保留了当时台北青年帮派林立、热衷暴力的真实社会环境。故事以建国中学夜间部学生小四的视角,讲述了他身边十多个不同角色的命运。包括小公园黑帮与217之间的仇杀与火拼、好友小猫王的歌唱梦想,父亲遭遇国民党政府的白色恐怖,以及小四本人与小公园帮老大Honey前女友小明的爱情。最终小四的爱情幻灭,在牯岭街杀死了小明,同时断送了自己的前程……
台湾资深演员张国柱在片中饰演了小四的父亲。他和杨德昌在讨论剧本时,发现自己12岁的儿子张震正好和片中的小四同龄,便建议让张震饰演小四。在本片之前,张震只在一两部电影中客串出演,本片是他的第一个真正重要的角色。
那时候的张震非常叛逆,也因为父亲的工作和其他同学不同、经常好几个月不在家而不喜欢演员这个职业。但《牯岭街》让张震第一次理解了父亲和这份工作。张震本身并没听说过牯岭街事件,扮演小四时也没有经过太多准备。张国柱仅仅帮儿子找了一些詹姆斯·迪恩的照片,让他模仿小混混的感觉,这让张震印象很深刻。
杨德昌拍摄时有很详细的剧本,每个角色都有详细的发展,剧本中每个标点都不可以改变,张震多数时候只需要按照杨德昌的要求出演。而杨德昌的要求通常非常严格,滑头将小四头撞墙一场便拍了40条。
拍小四在弹子房发现山东被杀死一场时,杨德昌知道张震无法演出见到死人的复杂情感,拍摄那天有意把张震骂了一顿,然后把房间里的灯关了,让他面壁思过。半小时之后,杨德昌把张震拉出来,让他立即拍戏,这让张震有了自然的反应。最终小四杀死小明一场戏则由于张震的情绪爆发恰到好处,只拍了一条。
此外,张震的哥哥张翰在片中饰演了小四的哥哥老二。知名影星金燕玲饰演张震的妈妈。毫无表演经历、在美国长大的杨静怡饰演了女主角小明,由于杨静怡并不太会说国语,她的台词全由后期配音完成。
在本片中,杨德昌展现了一个正处在历史变迁中的宝岛百态。整个台北处于戒严之中,不时有坦克开过。小四一家作为外省人的代表,必须在异乡找到自己的位置。同时,杨德昌展现了夹杂在日本、美国和外省文化中的宝岛年轻人所处的矛盾中心,他们正经历着父辈未曾见过的残酷世界。