建平地处武陵、江陵、永安三郡交界之处,历来为战略要地。建平城依山而建,易守难攻,城内粮草、水源充裕。金旋率军入城之时,严颜率军已到,扎营于建平西十里。时马谡押运粮草到来,献计曰:“西川兵久不作战,严颜又不知名,夜间可知会魏将军,分两路劫营,可获全胜。”金旋却知严颜有勇有谋,当年因轻视张飞有勇无谋,才为张飞以计胜之,决非易与之辈。曰:“适才观其营地,此人决非俗辈,不容小视,劫营决难见功。”
蔡瑁兵到,在建平东十里下寨。蔡瑁扎好营寨,与严颜互通信息,定于明日攻城。次日,严颜、蔡瑁两路合军,前来挑战。金旋命诸将先是全力防守,以泄敌军悦气。午后,金旋见敌军已有倦意,命魏延、赵云率领三万精兵突击严颜军阵,冲乱其阵势便归。命邢道荣率少军诈败,诱蔡瑁深入,而后与许诸合力,突击杀掉蔡瑁。
此时严颜、蔡瑁两军见金旋军不出,军士多有倦意,正要挥军归营,金旋大军突然出城,魏延、赵云两将也不答话,径奔严颜而来。赵云与严颜大战四五十合,严颜不敌,率所部军败回营寨。赵云、魏延不赶,时蔡瑁率军挑战,赵云诈败而归。又使魏延迎战,不数合,魏延亦诈败归。许诸又出战,不数合,又诈败而归。蔡瑁借势率军来攻,金旋命军士以强驽射退蔡瑁军,率军退回城中。
次日早上,金旋授魏延、赵云、许诸、邢道荣密计。蔡瑁与严颜合军挑战,蔡瑁列阵于东,严颜军列阵于西。金旋命马谡率一万军守寨,率诸将迎战。两军交锋。金旋命赵云率二万兵敌住严颜,严颜战不过赵云,对其有怯意。然知蔡瑁昨日连败金旋军中诸将,以为倚靠。金旋与魏延、许诸、邢道荣诸将率二万军迎战蔡瑁。许诸出战,蔡瑁以其为手下败将,不以为然。许诸出其不意,奋起勇力,一合斩蔡瑁于马下。金旋率军杀上,魏延、许诸、邢道荣等皆世之勇将,刘表军主将被斩,军无战心,为诸将杀得大败。蔡瑁军死伤无数,降者近万人。逃回江陵者万余人。
严颜见蔡瑁兵败,冲突来救,却被赵云死命挡住。严颜兵多,赵云兵精,两下正在激战。此时金旋、赵云、许诸、邢道荣四将率兵杀到,严颜大败。魏延、赵云直追到永安,方领兵回。共斩敌万余首,俘敌五千余人。
此场大战,金旋以五万兵败刘表、刘焉联军六万人。共折兵八千,杀敌近两万人,得降兵一万五千人。自此金旋兵威大振,刘表、刘焉不敢轻易犯界。