自张家湾一带撤退的僧格林沁军和从通州撤退的绿营兵抵达八里桥后,防守八里桥的总兵力即刻增加到3万人,其中马队近万人。他们利用八里桥周围的灌木丛林,临时搭筑了战壕和土垒,并作好了战斗部署:令马队首先出击,尔后以由定福庄移至八里桥的胜保所部迎击南路联军,瑞麟部迎击东路联军,僧部迎击西路联军。所有步队均隐蔽在灌木林中和战壕里,待击杀敌;马队则向联军的左翼到右翼的宽大正面实施反冲锋。
僧格林沁和瑞麟的部署不可谓不周密,但有两个明显的失误则是作为局内人的他们所不曾察觉的:其一,担负主攻八里桥任务的,是南路以科林诺为指挥的法军第2旅,而迎接南路之敌的不是强悍的僧格林沁军,而是相对薄弱的由定福庄移至八里桥的胜保部;其二,此前的清廷曾告谕僧格林沁等:“拿获奸细,据供:逆夷用兵,马队在前,步卒在后,临阵则马队分张两翼,步卒分三层前进。前层踞地,中层微府,后层屹立,前层先行开枪,中层继之,后层又继之,我军若迎头轰击,马匹一经受伤,必然惊溃,惟有斜抄横击,轰毙必多等语。夷情凶悍,深知兵法,是在该大臣等审度形势,妥筹应敌,以操必胜之权……若仅用正兵与之相角,恐夷人诡谲,不足以尽其变”。清廷还一再强调派出的马队劲旅,一定要绕至敌后,于夜间轮番出击,使其自相惊忧,进退失据。我军趁此时机,利用熟悉地形方位等优势给敌人以痛击。但僧格林沁对此意见未给予应有的重视,而是将马队派上宽大正面,对敌人实施反冲锋。
9月21日凌晨4时,联军由骑兵在前开路向八里桥方向推进。上午7时,联军分东、西、南三路对八里桥清军阵地发起攻击。东路为雅曼指挥的法军第1旅,西路为格兰特直接指挥的英军。南路担负着主攻八里桥的重任,是科林诺指挥的法军第2旅。此次作战以法军为主,由法国人孟托班担任总指挥。
八里桥保卫战打响后,清军马队即按原定部署立即由正面冲上前去。他们奋不顾身,齐声大呼杀敌,企图冲乱和割裂敌人的战斗队形。一部分骑兵冲至离敌人四五十米的地方,有的甚至冲到敌人的指挥部附近。激战一时许,毙伤千余敌人。清军马队因遭到据壕作战的联军步兵密集火力的阻击和敌炮散弹的轰击而大量伤亡,战马因受惊而横冲直闯,几近不能成军,被迫在敌人火力的逼使下退却下来。随后,南路的法军主力第2旅将大量的炮弹倾泻在八里桥上之后,给胜保部一沉重打击,致使胜保部伤亡惨重。当法军第2旅的两个前锋连队冲到桥边时,守卫石桥的清军士兵勇敢地冲出战壕与敌军展开了血刃战。后因胜保中弹受伤退下战阵,遂率军退至定福庄。法军对其穷追不舍,意欲一举以歼之,胜保又马不停蹄逃往北京。