梁山泊人马两赢童贯之后,认为朝廷绝不肯善罢甘休,便一面派人去东京打探消息,一面积极整军备战。果然,太师蔡京奏请皇帝,派太尉高俅率10路军马节度使各领1万军马,建康府(今南京市)水军统制官刘梦龙带水军15000,御营精兵15000,共13万大军,水陆并进,杀奔梁山泊来。
宋江听得高太尉亲领大兵前来,心中惊恐,便和吴用商议。吴用道:"他10路军马到济州取齐,我这里先差两个快厮杀的,去济州相近,接着来军,先杀一阵。这是报信与高俅知道。"宋江派没羽箭张清、双枪将董平各带1000军马,前去巡哨济州,相迎截杀各路军马;又拨水军头领,准备泊子里夺船。山寨里其他头领也预先调拨已定。
张清、董平两员勇将,截住京北节度使王文德的部队大杀一阵,回归山寨,报说高俅诸军取齐,正往梁山泊进发。宋江与众头领统率大军,于陆上拒敌。高太尉凭人多势众,指挥大军混战,梁山军马遮拦不住。高俅直赶到水边,调人去接应水路船只。岂知相接10余里水面的官船大军,迤逦前投梁山泊深处,见茫茫苇荡,不见人影。突然山坡一声炮响,四面八方,小船齐出,冲断官船大队。官船前后不能救应,归路已被梁山泊好汉用小船装载柴草,砍伐山中树木,填塞断了,那橹浆竟摇不动。众多官军,弃船下水逃命,被擒杀者无数。高俅望见,情知不济,正欲回军,只听四边炮响。原来梁山泊只把号炮四下里施放,却无伏兵,只吓得高俅心惊胆战,鼠窜狼奔,连夜收军回济州。计点步军,折陷不多;水军折其大半,战船没一只回来,第一阵大败亏损。
高俅深知,要扫平梁山,不能没有水军。即派人到处征集战船。上党节度使又给高俅推荐了东京一位深通韬略、善晓兵机的秀才闻焕章,高俅派人星夜去请。就在高俅征集战船、召请谋士之际,宋江派兵遣将不断进行骚扰性进攻,不断削弱官军的力量和士气。不久,高俅征集到大小战船15000只,便传号令,教把船放入阔港,每三只一排钉住,上用铺板,船尾用铁环锁定;尽数发步军上船,其余马军,近水护送船只。
梁山泊探知备细,吴用唤众多水军首领,各准备小船,船头上排排钉住铁叶,船舱里装载芦苇干柴,柴中灌着硫黄焰硝引火之物,屯住小港内。教炮手凌震,于四面高山上,放炮为号;又于水边树木丛杂之处,都缚旌旗于树上,每一处设金鼓火炮,虚屯人马,假设营垒,旱地上分三队军马接应。且说高太尉披挂了,发三通擂鼓,水港里船开,旱路上马发,杀奔梁山泊来。梁山泊好汉按既定部署,把官船大队引至水泊深处,只见芦苇丛中,藕花响处,小港狭汊,千百条小船齐出。鼓声响处,一齐点火,霎时间,大火竟起,烈焰飞天,四分五落,都穿在大船内。前后官船,一齐烧着,官军大乱,纷纷逃命。官军水兵统领刘梦龙、牛邦喜被擒杀,15000只战船化为灰烬。陆上高俅人马,被梁山好汉虚虚实实,杀了个落花流水,躲进了济州城。
宋江两败高太尉,惊动朝纲,便欲招安。当高俅借招安除掉宋江的阴谋被揭穿后,又调兵遣将,与梁山泊作第三次较量。朝廷拟80万禁军教头周昂、丘岳率军增援高俅,高俅又采用造船专家叶春之计,建造容量大、速度快的海鳅船数百只。海鳅船大者叫大海船,两边置二"赛仁贵郭盛"两员骁将。开战那日,只见梁山泊这面画戟中间,一簇钢叉,两员步军骁将解珍、解宝引步军守护中军中军两员文士萧让、裴宣,两个锦衣蔡福、蔡庆带三串刽子手。背后摆24枝银枪,左边骁将是金枪将徐宁,右边骁将乃小李广花荣,两边立着能行快走、飞报军情的神行太保戴宗,风流子弟、能干机密的浪子燕青。
右边销金青罗伞盖底下,绣鞍马上,坐着入云龙公孙胜;左边梁山泊总头领宋江。马后大戟长戈,锦鞍骏马,35员牙将,威风凛凛。马后又设24枝画戟,全部金鼓大乐。阵后设两队游兵,伏于两侧。中军羽翼,左右各有两名头领带15000名军马伏在两胁。阵后是扈三娘、顾大嫂、孙二娘三位女头领带一队女兵,她们的丈夫王矮虎、孙新、张清带马步军3000押后。
童贯在将台上,定睛看了梁山泊兵马,无移时摆成九宫八卦阵势,军马豪杰,将士英雄,惊得魄飞魂散,心胆俱落,骄横之气尽扫。双方一经交战,郑州都监陈翥就被秦明打死于马下。童贯军马被杀得星落云散,七损八伤,折人马万余,退30里下寨。
童贯输了一阵,心中忧闷。御林军大将丰美、毕胜道: “枢相休忧,此寇知得官军到来,预先摆布下这座阵势。官军初到,不知虚实,因此中贼奸计。草寇只是倚山为势,多设军马,虚张声势,我等一时失了地利。3日后我军列长蛇之阵,击首则尾应,击尾则首应,击中则首尾皆应,决此一阵,必见大功。”童贯道:"此计大妙,正合吾意。"遂下令整肃三军,训练已定。
3日后,童贯列一字长蛇阵,浩浩荡荡,杀奔梁山泊来。但见前日战场上,不见一个军马。进至水泊边,仍不见梁山泊军马的影子。遥望见芦林中一个渔人在一只小船上独自垂钓。童贯军兵问话,渔人不答;放箭射,却射渔人不死,数名军人脱衣下水捉这渔人,却被渔人攒下水底,排头戳入,血水滚将起来,乖巧的,逃得性命。那渔人乃梁山泊具有头等水性的浪里白条张顺。童贯正看得发呆,只听芦苇中一个轰天雷炮起,山背后鼓声震地,喊杀喧天,飞出一彪军马,为首骁将乃朱仝、雷横,带5000人马,杀奔官军。童贯令丰美、毕胜迎敌。4将斗到涧深里,朱仝、雷横卖个破绽,拔马便走。童贯叫尽力追赶过山脚去,只听山顶鼓角齐鸣,闪出"替天行道"的杏黄旗来。彩绣旗开处,显出宋江及吴用、公孙胜、花荣、徐宁、金枪手、银枪手等众多好汉。童贯大怒,差人马上山捉拿宋江。
只听后军呐喊,探子报:"正西山后冲出一彪军来,把后军杀开作两处。"童贯急带丰美、毕胜救应,东边山后鼓声响出,飞出一阵人马,分青旗、红旗两队,秦明、关胜引5000军马杀来。童贯见后军发喊得紧,叫鸣金收兵,朱仝、雷横引黄旗军又杀将来。两下夹攻,官军大乱。丰美、毕胜保护童贯,逃命而走,斜刺里飞出一彪车马,那军马一半黑旗,一半白旗,由呼延灼、林冲两员虎将截住厮杀。洳州都监马万里被林冲戳于马下,睢州都监段鹏举被呼延灼打败。
正混战间,山背后武松、鲁智深又领步军杀来,童贯只得引丰美、毕胜冲出重围,杀条血路,奔过山背后来。又听炮声大震,解珍、解宝又引步军杀入阵内,童贯拍马往斜刺里便走,丰美、毕胜、唐州都监韩天麟、邓州都监王义赶来救应,4个并力,杀出垓心。喘息未定,前面尘起,叫杀连天,董平、索超更不答话,带一彪军马杀入。王义被索超砍于马下,韩天麟被董平一枪搠死。丰美、毕胜死保童贯,奔马逃命。
陈州都监吴秉彝、许州都监李明引残军来助,被杨志、史进杀死。童贯被困在一山坡上,夜晚带丰美、毕胜并嵩州都监周信、睢州都监段鹏举合兵一处,杀出重围,又被卢俊义、杨雄、石秀带兵大杀一阵,丰美被卢俊义活捉。正走之间,又被李逵、鲍旭、项充、李衮4位煞星带步兵拦住,段鹏举14部水车,每船可容数百人,由10人踏动,其船如飞。20只小海鳅船,两边用12部水车,每船可容百十人。高太尉看了图纸,心中大喜,于是连日星夜催并部队,砍伐树木,调集造船用料,督造海鳅船。
一时间,那济州东路上一带,都是造船的工地,匠人成千上万,纷纷攘攘。正当官军唬吓民夫星夜造船之际,吴用派张清、孙新扮作民夫,叫顾大嫂、孙二娘扮作送饭妇人,并让时迁、段景住相帮,混入船厂放火。是夜,时迁、段景住在济州城楼和城西草料厂放火,孙新、张青在左边船厂放火,孙二娘、顾大嫂在右边船厂里放火。一时间,烈焰腾腾,噼噼啪啪,照耀如同白昼。待官军救灭了火,天色已明。这把火,大大拖延了高俅的造船期限。
待到造好海鳅船,高俅水陆进兵时,梁山泊好汉又运用他们的传统战法,引诱官军船队至水泊深处,由阮氏三雄、混江龙李俊、浪里白条张顺等水军头领,带领水军,用柴草塞定水路,于水下凿漏船底,使官军船队欲进不能,欲退不得。梁山泊好汉趁机一阵好杀,连太尉高俅也生擒活捉了。高俅的陆上人马,由周昂、王焕等率领,沿唯一通往梁山大寨的陆路进攻,也被埋伏在山前两边丛林中的梁山人马打得落花流水。