每支香烟都有一个故事,一支未抽完的香烟, 一段未谈完的恋爱,一个豹哥与烟仔的故事。江湖大哥下山豹(曾志伟饰)已经过气,而二十年前的他(冯德伦饰年轻豹哥)迷恋舞厅陪舞女郎(舒淇饰),而与九纹龙(李灿森饰)在舞厅决斗。豹哥败战,流亡到巴西成为大厨。患了老年痴呆症的下山豹二十年来寂寞生活,邓丽君的国语歌“我只在乎你”和随身烟盒:舒淇抽过的半支香烟,使他旧情难忘,于是回到香港寻找。豹哥结识街头少年烟仔(谢霆锋饰),烟仔爱情一段接一段,为卖春少女被非礼而挥刀杀人,为搏红颜一笑而偷钢琴,对他来说比爱情更长久的,是嘴上的香烟。豹哥希望烟仔帮他找到舒淇,看在金钱的份上,烟仔答应帮忙。烟仔的母亲(金燕玲饰)原来也是妓女,那个生下烟仔男人临走时,只留下半支香烟。她要找到他。豹哥和烟仔渐渐成为忘年知交。烟仔终于在一处破落的舞厅找到舒淇,豹哥原来竟不知道她的名字。