这部电影描述了人类史上最残酷的战争之一:温泉关之战。公元前480年,波斯国王薛西斯一世亲率30万大军征战希腊。希腊各个城邦迅速派出军队结成了联军,准备抵御波斯军队的入侵。
防线的最前线设在希腊的温泉关,此处由斯巴达城的国王列奥尼达率领本城300精兵和联军4000余人镇守。由于叛徒的出卖,希腊军队被波斯军队抄到了身后形成围剿之势。列奥尼达为了保存联军实力,让联军首先撤退,自己率领300精兵死守温泉关断后。
数以十万波斯大军浩浩汤汤蜂拥而至,自知必死的斯巴达士兵反而士气高涨,在战斗中爆发出惊人的战力。整个战争整整持续了2天,最后列奥尼达和他的300精兵全部阵亡,而波斯军队则损失了20000多士兵,薛西斯一世的两个兄弟也在此役中战死……。整日醉生梦死的小工人林守一(李修贤 饰)当年曾是一名优秀干练的皇家警察,后来他因酒后殴打嫌疑人而被停职查办,感情一向不和的妻子Judy也趁机与其离婚。数年后,重案组警探程曦(梁家辉 饰)及其助手铁男带着男孩小念找到林,原来林的前妻不久前被人入室杀害,只有儿子小念幸免于难。经过一段时间相处,父子俩由疏远逐渐亲密起来,林也决定找出杀害前妻的凶手。
几经辗转,程和林找到Judy生前的室友——美丽的女模特Ellen方(郑文雅 饰),询问之后一无所获,而他们的造访却给Ellen带来巨大的麻烦……。