東昌、寇州二處官員聞知宋江殺了高廉,破了高唐州,慌忙派人飛報朝廷。次日早朝,高俅上殿奏道:「濟州梁山泊賊首晁蓋、宋江,聚集兇徒惡黨,先在濟州殺官軍,鬧了江州、無為軍,今又把高唐州官民盡數殺戮,府庫搶掠一空。如此心腹大患,若不早日剿除,以後恐難制伏。」天子大驚,傳旨命高俅挑兵選將,前去掃清水泊。高俅說:「如此草寇,臣保一人,可去收復。此人是開國元勳、河東名將呼延讚的子孫,單名灼,使兩條鋼鞭,有萬夫不當之勇,現為汝寧郡都統制,臣保此人為兵馬指揮使,很快就會掃清梁山泊。」天子准奏,派欽差前往汝寧宣呼延灼。
不多幾日,呼延灼便趕到東京,來見高太尉。高俅忙命傳見,給了賞賜。次日早朝,高俅領呼延灼面君。天子見呼延灼生得一表非俗,龍心大悅,御賜踢雪烏騅馬一匹。此馬生得渾身如墨,四蹄如雪,能日行千里。呼延灼謝了恩,隨高俅來到殿帥府,說:「小將看梁山泊兵多將廣,不可輕敵,保舉二人為前部先鋒。一個是陳州團練使,名叫韓滔,使一條棗木槊,人稱百勝將軍,可為正先鋒;另一個是潁州團練使,名叫彭,使一口三尖兩刃刀,人稱天目將軍,可為副先鋒。」高太尉就發出兩道公文,調韓滔、彭火速來京。不幾天,二將也來到東京,見了高俅、呼延灼。次日,高俅先到校場,看了三人演武,又會同樞密院童貫,商討了如何進兵。高俅讓三人各回本州,挑選一萬人馬,又讓他們到京師甲仗庫,任意挑選衣甲兵器。呼延灼就到甲仗庫,領出鐵甲三千副,頭盔三千頂,熟皮馬甲五千副,良槍兩千支,滾刀一千把,弓箭無數,火炮五百餘門。出京之日,高俅又撥出戰馬三千匹,賞了三個將軍金銀綢緞,開了三軍糧餉。三人立下必勝軍令狀,分頭提調人馬。
不上半月,三路人馬聚齊,呼延灼分發了衣甲兵器。兵分三路,前路韓滔開路,呼延灼自領中軍,彭斷後,浩浩蕩蕩殺奔梁山泊。
梁山頭領聞報,在聚義廳商議怎樣迎敵。吳用說:「呼延灼武藝精熟,能征慣戰,必須先以力敵,後以智取。」李逵說:「我去捉這傢伙!」宋江說:「用不著你。可請秦明打頭陣,林沖打二陣,花榮打第三陣,扈三娘打第四陣,孫立打第五陣;水路請李俊、張橫、張順、三阮駕船接應,李逵與楊林各領一隊步兵,埋伏救應。」宋江安排罷,各帶人馬下山,排列陣勢,嚴陣以待。等了一天,官軍開到,先鋒韓滔紮下營寨,雙方因天晚俱未挑戰。
天明後,兩軍對陣。梁山軍中秦明橫棍出馬,與韓滔對照一陣,放馬交鋒。兩個鬥了二十合,韓滔力怯,眼看要敗,呼延灼恰好趕到,不及安營,拍馬舞鞭,來戰秦明。林沖趕到,替下秦明,挺矛來戰呼延灼。兩個鬥了五十多回合,不分上下,花榮又趕到。林沖撥馬就走,呼延灼也勒馬少歇。官軍後隊也趕到,彭揮舞三尖兩刃刀來戰花榮。鬥有二十回合,彭漸漸不敵,呼延灼趕來替下他。鬥不三合,扈三娘趕來,花榮撥馬走了,彭再次上陣,力戰扈三娘。兩個鬥了二十多回合,扈三娘回馬就走,彭縱馬趕來。扈三娘收了刀,取出上縛二十四個鐵鉤的紅錦套索,扭身撒出,正抓住彭,拖下馬來。眾嘍囉一陣吶喊,生擒了彭。呼延灼拍馬來救,扈三娘回馬迎敵。呼延灼恨不得一口吞了扈三娘,越鬥越勇。鬥到十多合,呼延灼放雙刀砍進來,雙鞭劈頭打下。扈三娘眼明手快,疾改招式,舉刀招架,鞭刀相交,錚的一聲響,火花直迸。扈三娘自知不敵,回馬就走。呼延灼揮鞭迎敵,孫立見對手使雙鞭,收住槍,取出單鞭迎上去。二人都是鐵盔鐵甲黑戰袍,騎的烏騅馬,如同兩片烏雲,在戰場上殺做一團,鬥了三十餘回合,不分勝敗。
韓滔見彭被擒,便點起馬軍,衝上前來。官軍的馬隊馬帶馬甲,人披鐵鎧,馬只露四蹄,人只露雙眼。宋江忙命放箭,那箭射上,叮叮噹噹,如同敲鑼。而馬軍射出箭來,梁山軍馬無法抵擋。宋江忙命鳴金收兵,呼延灼也命退後二十里下寨。
宋江回到山西寨中,親手解去彭綁縛,好言撫慰。彭感謝不殺之恩,情願入夥。宋江便讓人把他送上山,與晁蓋相見。
次日,呼延灼命馬軍把戰馬每三十匹用鐵鏈連成一串,叫做連環馬,迎戰宋江兵馬。連環馬放開來,如同排山倒海,從三面衝殺過來,遠者箭射,近者槍挑,勢不可擋。宋江兵馬無法抵敵,四散逃命。李逵、楊林伏兵殺出,拼死攔截,方保宋江等頭領逃至水邊,李俊等水軍忙用戰船接應。連環馬趕到,亂箭射來。水軍立起船邊遮箭牌,擋住箭雨,逃至鴨嘴灘水寨。宋江查點人馬,損失過半,所幸眾頭領都在,只林沖、雷橫、李逵、石秀、孫新、黃信六人中箭。晁蓋、吳用、公孫勝下山來慰問。吳用說:「勝敗乃兵家常事,再設良策,可破連環馬。」晁蓋便傳令牢守寨柵船隻,守住灘頭,又請宋江上山。宋江不肯,就在鴨嘴灘駐守,只讓帶傷者上山醫治。
呼延灼大獲全勝,殺死梁山兵馬數千,生擒五百多人,戰馬三百餘匹,便差人赴東京報捷。高俅得到捷報,奏明天子,賞御酒十瓶,錦袍一領,錢十萬貫,派出欽差,前去勞軍。呼延灼領了賞,向欽差說:「賊軍退回水泊,不敢出戰,我軍若想取勝,請派轟天雷凌振來軍前。此人善會造炮、用炮,能轟擊十多里遠,可隔水炮轟賊兵山寨。」欽差回到東京,將此事告知高俅,高俅調凌振前來,委以行軍統領官。凌振備齊大炮、火yao,帶幾十名軍漢,押送車仗,趕到梁山泊。呼延灼見過凌振,便命他安排炮火,轟擊山寨。
探子報到鴨嘴灘寨中,說是官軍調來炮手凌振,要炮轟山寨。吳用就讓宋江拔寨上山,以防炮火。眾人正商議如何對付,只聽三聲炮響,兩炮打到水裡,一炮落在鴨嘴灘寨中。眾頭領大驚失色。吳用卻說:「只要逼得近了,炮火就失去威力,可用計誘擒凌振。」便說出計策。晁蓋就命李俊、張橫、張順、三阮六員水軍將領依計行事,派朱仝、雷橫接應。
李俊、張橫帶數十名水軍從蘆葦叢中駕船悄悄過去,張順、三阮帶四十餘隻小船隨後接應。李俊等摸到官軍炮兵陣地,突然登岸,發一聲喊,把大炮推翻。凌振聞報大怒,提槍上馬,領了千餘人趕去。李俊等回身就走,上了張順等人停在岸邊的船。凌振追到水邊,向船上殺去,船上的水軍吶喊一聲,都跳到水裡。凌振將四十餘條船如數奪下,只見對面灘頭上朱仝、雷橫正領人擂鼓吶喊。凌振更怒,命軍卒都上船,殺向對岸。船行到湖水深處,朱仝、雷橫又命人鳴鑼。水底下鑽出幾十個水軍,拔去船尾銷子,水湧入船中。水軍就勢扳翻船,官軍下餃子般落入水中。凌振正要回船,也被扳翻,被阮小二一把抱住,拖到岸邊,一條索子綁了,押上山寨。官軍大半淹死,二百餘人被俘,只有少數人逃回去。待呼延灼聞訊趕來,只恨得咬碎鋼牙,卻又無可奈何。
凌振被押上山,宋江親自鬆綁,請他上山入夥。凌振無話可說,只是怕連累家中老小。宋江讓他們放心,說很快就可派人把他們的家眷接上山,他才安下心來。
第二天,眾頭領商議破連環馬的辦法。金錢豹子湯隆站出來說:「要破連環馬,必須用鉤鐮槍。我家祖傳打造軍器,可我只會打,不會用。天下只我的一個姑舅表哥會用,但他家世代只傳子孫,不收徒弟。」林沖問:「是不是金槍班教師金槍手徐寧?」湯隆說:「正是他。」林沖說:「在東京時,我倆也有交情,他的金槍法、鉤鐮槍法,果然獨一無二。只是如何能請他來?」湯隆說:「徐寧有一件傳家之寶,天下無雙,當年我到東京走訪親戚曾見過,是一副雁翎黃金鎖子甲,名叫賽唐猊,又輕又軟,刀槍不入,輕易不讓人看。他把甲用皮匣子盛了,掛在臥房的樑上。要是能得到他這副甲,不由他不來。」吳用說:「這有什麼難處,現放著高手兄弟,時遷可去走一趟。」時遷說:「除非沒有這東西,只要有,我就有法盜來。」湯隆說:「只要你能盜來甲,我就能把他騙上山。」他附在宋江耳邊,悄聲說出計策。宋江說:「此計很好。」吳用說:「再用三個人同上東京,一個買火yao,兩個接淩統領的家眷,另派人到潁州接彭團練的家眷。」就點了楊林去潁州,薛永買火yao,李雲取凌振的家眷,樂和與湯隆賺徐寧,讓時遷先行下山。次日,湯隆打了一把鉤鐮槍做樣子,讓雷橫監督鐵匠依樣打造。隨後,幾人就下了山。宋江又派戴宗下山,往來探聽、傳遞訊息。