曾为清廷第一猛将苏灿(赵文卓饰)抛弃大好前程回到家乡,本想自此钻研武学,开宗立代,和妻子袁英(周迅饰)还有儿子从此不再分离,尽享天伦。不料因为上代恩怨,义兄袁烈(安志杰饰)练就魔功,杀死苏父,并掳走苏灿妻儿。河滨一战,苏灿败北,性命攸关之际,妻子舍身相救,后又得遇隐居山野尝遍百草的高人于大姐(杨紫琼饰)救助,两人得以保全性命。苏灿因右臂筋脉断裂而悲不雅观丧气,终日醉酒逃避现实,在妻子的精心照料与鼓励之下,苏灿最终重新振作。苏灿与袁烈再次交手,一雪前耻,但因意气用事却未能及时救出被袁烈埋入地下的袁英。妻子去世之后,悲痛欲绝的苏灿与儿子流浪至中俄边境,此时的苏灿形同乞丐。在一次醉酒之后,他遇到曾经在幻象中与本身切磋的“武神”(周杰伦饰),在与武神交手过程中,他领悟到一套于醉酒之中展示武术精妙的拳法——醉拳。面对国人受辱,好友与儿子身陷危难,苏灿挺身而出,与俄国大力士展开激战,最终靠醉拳战胜敌人。