0年代天下大乱，太平天国兴起，各地起事不断，清军将领庞青云（李连杰饰）率众镇压太平军，因友军「魁字营」作壁上观而兵力不支，全军覆没。庞装死躲过一劫，在流亡的路上和逃出土匪窝的前扬州歌女莲生（徐静蕾饰）萌生感情。庞为了有饭可吃，加入姜午阳（金城武饰）招募的土匪队伍，在抢劫太平军的粮车过程中显露战斗才华，获姜午阳及姜的义兄－赵二虎（刘德华饰）赏识，但是庞此时方知莲生是赵二虎的妻子。不久，魁字营镇压土匪窝，抢走了粮食。庞鼓动赵和姜两人加入清军，以获得军械武器，便可不再被欺负。为了表示忠诚，三个人各杀了一名路人，立