東漢末年亂世中,劉備的兩位夫人及未過門的小妾綺蘭(孫儷飾)被困曹營,關云長(甄子丹飾)為保忠義暫時歸降曹操(姜文飾),但始終對曹操操控漢室的野心心存抵觸,暗中尋求重返劉備陣營的機會。曹操欣賞關羽的將才與仁義之心,試圖以匡扶天下為由勸留其輔佐。袁紹起兵討伐曹操時,關云長于萬軍之中斬殺顏良,因此獲封漢壽亭侯,并與張遼(邵兵飾)結為同袍之交。在遣返兩位劉夫人后,曹操于關云長酒中暗置春藥,欲借綺蘭(孫儷飾)引發其亂倫之過——關羽早年曾因保護同鄉綺蘭而擊殺官兵,二人情愫暗生卻受制于叔嫂之禮。酒醒后的關云長識破陰謀,攜綺蘭突圍而出,一路闖關奪隘,連斬曹軍六員將領,最終完成“過五關斬六將”的傳奇征程。