每支香烟都有一个故事,一支未抽完的香烟,一段未谈完的恋爱,一个豹哥与烟仔的故事。过气的江湖大哥下山豹(曾志伟饰),二十年多前年轻豹哥(冯德伦饰)迷恋舞厅女子(舒淇饰),因为与九纹龙(李灿森饰)在舞厅的一场决斗败战,而流亡到巴西成为大厨。伴随二十多年异乡寂寞生活的除了这名女子的印象,还有邓丽君的国语歌《我只在乎你》,以及随身烟盒:她抽过的半支香烟。本来他对这段情不存幻想,但患了老年痴呆症的他,回首大半生,竟然发觉自己的过去唯一萦绕于心的只有那一段不可忘记的爱情,由于不想失去对这名女子的记忆,他决定返乡。回港后他遇见街头少年烟仔(谢霆锋饰),烟仔可为一个卖春少女被非礼而挥刀杀人,也可为搏红颜一笑而夜出偷钢琴,但是爱情是一段接着一段,比爱情更长久的,只有嘴上香烟的持续。豹哥在大性大情的烟仔身上看到自己年轻时期的浪漫,遂与烟仔结识,希望烟仔帮他找到那名令他倾慕的女子,烟仔看在金钱的份上就答应帮忙。烟仔的母亲(金燕玲饰)原来也是妓女,爱情对她来说犹如香烟般短暂,唯一的遗憾是当初种下烟仔的那个男人临走时,只留下半支香烟。由于记不起烟仔父亲的样貌,自此每天都站在庙街上期待着那张似曾相识的脸孔出现。烟仔延续了母亲的渴望,盼望有一天可以寻找到那张可以永记于心的脸孔;豹哥诉说着不可一世的陈年过往,令缺乏父爱的烟仔更生孺慕之情,俨如忘年知交。烟仔摒弃当初为钱所做的承诺,努力帮他找寻三十年前的故人,终于他们在一处破落的舞厅找到她,豹哥本打算在见到那名女子后自杀,来留住最爱的回忆,但当他见到她时,所问的第一句话竟是她的名字,原来令其沉迷一生的只是一名连她姓名都不知的女子,而此刻豹哥也忘了来此的目的。两段浓情浪漫爱情故事,从一把刀、一支枪、半支香烟开始,慢慢燃烧。