原来巴夏礼等人被捕时,联军久候不归,便断定他们已成人质。法方提出立即对僧格林沁设于郭家坟的大营发动进攻,格兰特担心进攻会要了巴夏礼、洛奇的命,表现得犹豫不决。经过商量,联军方面决定在进攻前再做一次外交努力,他们让一群骑兵护卫着威妥玛,举着休战的白旗靠近僧营,威胁说如果僧格林沁不在第一时间释放人质,联军就将向北京进军。
这种威胁没有产生任何效果。1860年9月18日中午,在法方的催促下,格兰特终于下达了攻击令。
僧格林沁在张家湾和通州总共集结了两万人马,其策略是以骑兵构成屏障,阻挡联军对北京的进攻,同时相机对联军实施包围。如果是在冷兵器时代,这种“中世纪战术”无疑是有效的,但当面对拥有先进大炮和枪支的西方军队时,它却变得漏洞百出。特别是僧格林沁为屏障京城,将己方战线拉得过长,这使得联军很容易进行突破和渗透。
作战过程中,联军集中力量,用阿姆斯特朗炮对僧军防线中的薄弱部位进行轰击,僧军骑兵的战马受惊,回头狂奔,又冲击了绿营步兵。如此一来,步骑兵全都无法保持原有阵形,部队一片混乱。
此时一个团的锡克骑兵和阿拉伯骑兵,从左翼对僧军发起进攻。这些敌骑兵每个人都骑着高头大马,配有精良武器,而僧军步骑兵只能用抬枪和鸟枪反击,无论火力还是人员数量(在突破点范围内),都不是其对手。
短时间内,僧格林沁所组织的防线便一触即溃。这一战,中国军队损失高达一千五百人,而联军仅伤亡三十五人,张家湾和通州城也被英法联军占领。
张家湾落败后,僧格林沁率部退守八里桥,他和瑞麟紧急商定,全军分东、西、南三路截击敌军,其中近万名满蒙骑兵被配置在八里桥一带防守。
八里桥是一座横垮运河的石桥,为通州进入北京城的咽喉要地。僧格林沁利用八里桥周围的灌木丛林构筑了土垒和战壕,准备与敌人决一死战。在给咸丰的奏折中,他慨然表示:“倘该夷由通州上犯,奴才等唯有与之以死相拼。”
9月21日,凌晨4点,英法联军由张家湾和通州向八里桥推进。上午7点,分东、西、南三路对八里桥守军发起攻击。
僧格林沁闻讯,首先命令蒙古骑兵利用奔马的冲击力,对主攻西路的英军实施冲锋。因为这次英法两军是分开作战,英军又借了一批骑兵给法军,所以格兰特错把从远处飞驰而来的这群蒙古骑兵当成了借给法军的骑兵,竟然没有下令开火。直到对方靠近,英军才看清楚,急忙使用包括阿姆斯特朗炮在内的野战炮进行近距离轰击。
一部分蒙古骑兵不幸被猛烈的炮火“打得粉碎”,但另一部分骑兵经过勇猛和反复的冲击,“顶住了使他们惨遭伤亡的强压火力”,冲至格兰特的临时指挥部附近,有的距敌仅有四五十米。
对蒙古骑兵来说,就是这四五十米的距离,也是一道难以穿越的鬼门关。一字排开的英军狙击手开始进行轮番射击,骑兵们先冲向右方,发现右方火力炽热,又迅速转向左方进行迂回,然而始终无法冲破敌人密集的弹雨。
看到骑兵冲锋未能生效,僧格林沁亲自出马,指挥骑兵冒着炮火在南路与西路之间进行穿插,试图分割敌人的阵势,但关键时刻,南路部队却率先溃败下来。
南路部队由胜保指挥的五千京旗兵组成。战前胜保派人给主攻南路的法军送信,说如果联军继续进攻,他就要将两名人质给杀掉。
这两个人质一为法国牧师,一为英军上尉,如果是额尔金或者格兰特,肯定要为此犹豫半天。法军统帅孟斗班急于建功,哪里顾及人质死活,他二话不说就下令部队展开了进攻。
胜保素来有点二愣子脾气,一看,你们还真打,当我说话放屁是不是?立即把两名人质拖过来,一刀一个,杀了之后把尸体扔进了运河。接着他骑马跑到阵前,朝着法军大叫:“我是胜保,尔等可曾听过我的名号?”
法军倒是知道僧格林沁,却哪里听过什么胜保,不过见他戴着红顶花翎,骑着马到处跑来跑去,便知道是一员高级指挥官,遂集中火炮朝他进行轰击。胜保当即中弹落马,所部大旗亦被炸断。值得庆幸的是,虽然他的乘马几乎被炸烂了,其左颊、左腿也俱被弹片打穿,然而人居然还没死,仅受重伤。
在北方将领中,胜保的名气仅次于僧格林沁,但他的军事才能其实只是一般,临时归其指挥的京旗兵又久不训练,战斗力很弱,最后法军用仅仅阵亡三人的代价就打通了南路。这一仗令孟斗班得了势,自觉在英国人面前有了资本,法国国王拿破仑三世获得消息后,居然也不伦不类地给他授予了一个名为“八里桥伯爵”的爵位。