在东汉末年的动荡时期,刘备的两位夫人以及一位未嫁的小妾绮兰(孙俪饰)被困在曹操(姜文饰)的营中。关云长(甄子丹饰)为了忠义投降曹操,但他的心中始终对曹操操控汉室的野心不能释怀,希望能够重返刘备身边。曹操对关羽的才能和仁心十分欣赏,试图以天下苍生的利益来说服他。正巧袁绍兵起,关云长在战斗中斩杀了袁绍的将领颜良,因此被曹操封为汉寿亭侯,并与张辽(邵兵饰)结下了深厚的兄弟情谊。曹操将刘备的两位夫人遣返后,他为了让关云长与绮兰发生不道德的关系,在关云长的酒中下了春药。关云长曾经暗恋同乡绮兰,甚至为了她杀死过官兵,但因为叔嫂之礼而不能在一起。然而,清醒之后的关云长决定和绮兰一起逃离曹操的营地,他们冲破重重关卡,最终实现了“过五关斩六将”的壮举,留下了千古传奇。