雷正綰等部攻克固原之後,揮師北上,於10月7日攻克黑城鎮,然後回師固原。白彥虎的部隊沿清水河北上,奔到黑城東南方六十裏處的三營,在這裏據守。
周蘭亭和簡敬臨於10月14日率部攻克三營,斬殺回民軍元帥楊文治。這支湘軍繼續北進,又於10月16日攻克黑城以北的李旺堡,然後繼續進軍,攻克穆家潭,俘虜回民軍首領楊輝雲。
楊文治的死訊震撼了各路回民軍。馬化龍多次被劉鬆山的部隊挫敗,便委托甘肅回民代他向湘軍哀辭請求安撫。
白彥虎所部已經抵達預旺城。他和禹得彥、李經舉等陝西回民軍首領都失去了安全感,於是下令放棄預旺,率部奔向西南方的鹽茶廳城,即現在地圖上所標的海原。崔三、馬生彥與馬正和等人,全部從寧安四百戶西奔,打算從打拉池南下會寧和安定,與河州的回民軍會師,稍作喘息。
左宗棠令黃鼎和馬德順所部從黑城跟蹤追擊。兩支部隊於10月18日冒雪行軍,於10月20日抵達鹽茶廳,見堡寨上空仍有炊煙,知道回民軍離去不久。馬德順率領騎兵急追四十裏,在西安堡追上了回民軍。停馬四望,隻見前麵是一片平川,布滿了帳篷。
回民軍沒料到湘軍這麽快追來,驚嚇之下,婦女和小孩號哭奔逃。馬德順所部斬殺五六百人,黃鼎所部和呼敦的騎兵追到,又殺一千人。回民軍已經散不成軍。馬德順率輕騎觀察地勢,被埋伏的起義軍刺死,哨官張顯揚同時斃命。
黃鼎的部隊於10月21日攻克打拉池,清廷下詔褒獎。雷正綰和黃鼎得賜上方珍玩,馬德順得到優厚的撫恤。
黃河以北的陝西回民軍奔入賀蘭山,張曜率部在巴彥浩特以南約五十裏處的福因寺將回民軍擊敗。阿拉善王將此事奏報清廷,清廷令金順和張曜所部乘勝追擊,又令左宗棠派部隊兼顧蒙民居住地。
不久,金順與張曜所部到達黃河以北,然後率部南下。納萬元的甘肅回民軍聯合陝西回民軍在漢渠集迎戰。金順和張曜所部從東繞擊,大敗回民軍。
回民軍奔向納中閘,金順和張曜所部追趕到龍王廟以南,拔除了回民軍在東南麵的所有堡壘。金順和張曜所部分別駐紮漢渠集東麵和南麵,搗毀四座寨堡,全殲駐守寨堡的回民軍。
10月25日,黃鼎率部攻克同心以南的新堡子,陳林與馬正和返奔長流水。天下大雪,雷正綰所部從同心城出擊,周蘭亭率部從四百戶出擊。陳林等人先將眷屬送回金積堡,向曾傳理請降。馬化龍又代他們向劉鬆山請降。於是,雷正綰和周蘭亭所部進駐寧夏北端的黃渠橋,簡敬臨和張福齊所部進駐韋家堡,與劉鬆山部會師。
在此之前,劉鬆山所部已經攻下顧家寨,回民軍各部更加緊張。現在馬化龍見禹得彥等人的陝西回民軍都向劉鬆山遞交了保證書,便托人向左宗棠請求暫緩進軍。劉鬆山令馬化龍先交出馬匹和武器,再議安撫之事。馬化龍交出一批朽槍和瘦馬,打算應付過去。其實他命令部隊晝夜修築壁壘,挖掘濠溝。
劉鬆山知道這是緩兵之計,便派出營夫割草,觀察馬化龍所部的動靜。馬化龍果然派出大部隊抄襲湘軍,依傍敬家莊的兩座寨堡列陣。劉鬆山命令騎兵和步兵夾擊,燒毀兩座寨堡。於是,吳忠的回民軍趁夜掘開秦渠,逼水東流,打算灌淹湘軍軍營。
劉鬆山命令各部分別攻克壩西的寨堡,開挖溝渠,迫使大水西流,回民軍多數溺水而亡。劉錦棠又率部攻克溝東的寨堡。
幾天後,劉鬆山令軍士們攜帶鋤頭鐵鍬和草束到達水漫溝,掀土填濠。回民軍收兵入寨,劉鬆山命令步兵越過濠溝追擊,攻破三座寨堡,繼續進兵,攻克王莊和梁莊。
秦渠水溢影響到劉鬆山所部的糧食運輸,來自黃河以西的運糧隊都要繞道而行。王家樓和張家灘擋住了運糧隊的道路。劉鬆山命令劉錦棠率部將這兩處攻占,毀掉七座寨堡和兩座壁壘。
這樣一來,馬化龍更加震驚。他請金積堡的漢民到湘軍軍營請求安撫。劉鬆山盤問來人,知道漢民是應馬化龍的要求而來,便問道:“馬化龍是否真有誠意?”漢民回答說:“我們不知道。”
劉鬆山無法明察馬化龍的真實意圖,便做好進攻的準備。他把駐防花馬池和定邊的四營兵力調來協助,雙壽的吉林騎兵也已開到。
馬化龍見湘軍增兵,於10月26日派漢民到湘軍營中,獻出十萬斤米糧。劉鬆山說:“必須先交出馬匹和武器,才能辦理安撫。說幾句好話,給一點小利,是沒有用的。”
於是,劉鬆山下令進攻金積堡旁邊的七座寨堡,全部攻克。
10月31日,馬化龍請求延期,暗中將靈州的眷屬轉移到金積堡,帶領陝西的回民軍入城協助防守。
劉鬆山獲悉馬化龍的計劃,決定先攻靈州城。