孫恩初起於隆安三年《公元399年》十月,年底即被劉牢之、謝琰之軍趕人海島。
東晉朝廷擔心孫恩再度登陸,即命令謝琰率領徐州刺史府文武兼任會稽太守、都督五郡諸軍事,駐守在海岸線。
果然,第二年,隆安四年五月,孫恩真的再度從海島率軍朝會稽殺來。
孫恩之所以能夠卷土重來,主要與劉牢之、謝琰措置失當有關。
劉牢之的北府兵本來就是淮北流民,處於社會的最底層,在進入富庶的會稽等郡後,軍紀很壞,當地百姓大失所望,紛紛逃往深山老林避難,郡縣為之一空。
謝琰都督五郡軍事以後,朝廷群臣均認為,謝琰身為宰相之子,又是淝水之戰的將帥之一,東土就此可以安定,謝琰本人也十分自負,但他根本不了解東晉各地尤其是經過了孫恩之變以後的東土各郡極端復雜而深刻的社會矛盾。
他不僅沒有采取有效措施安撫驚恐不安的百姓,反而自恃威名,不把孫恩放在心上。
謝琰手下眾將紛紛建議他說∶『強賊就在近海,時刻窺探我們的虛實,尋找卷土重來的機會。
我們應當采取寬大政策,分化瓦解他們,給予他們一條改過自新之路』而謝琰卻不同意,他回答道∶『苻堅百萬雄師尚且在淮南送死,孫恩狼狽逃歸海島,豈能再次回來如果他膽敢再次登陸,那說明上天不會豢養賊寇,讓其速死而已!』
隆安四年五月,也就是孫恩被趕回海島三四個月以後,他再次率軍殺回。
這次他首先進攻浹口《浙江寧波鎮海區東南甬江口》,繼而又攻陷了餘姚《浙江餘姚》,接著繼續向西,趁勢又攻下了上虞《浙江上虞》,孫恩所部一直推進到會稽郡首府山陰東北的邢浦,距離山陰僅三十五裡。
謝琰命令參軍劉宣之率軍迎戰。
劉宣之初戰擊破了孫恩之軍,孫恩向後退去。
數日之後,孫恩再次進攻邢浦,上黨太守張虔碩戰敗,孫恩所部士氣大振,爭先恐後地向山陰撲來。
謝琰部將均建議應當持重待敵,嚴加防守,將水軍安排在南湖,設下埋伏,以待敵人,謝琰拒不聽從。
孫恩軍隊抵達山陰城下的時候,謝琰尚未進食,他慷慨說道∶『一定要先滅了此寇,我再吃早飯!』於是,飛身上馬而出。
謝琰的徐州軍隊還是有一定的戰鬥力的。
廣武將軍桓寶擔任先鋒,他率軍一路殺去,給予孫恩所部以迎頭痛擊,殺傷了很多敵人。
可是,由於山陰近郊溝壑縱橫,水塘邊上的道路狹窄,不便於大部隊穿行,謝琰的部隊不能有效展開追擊,隻能沿著田埂魚貫前行。
而孫恩的水軍卻在戰船上射擊,將謝琰的追擊部隊一分為二,致使其首尾不能相顧。
沖在前面的謝琰部人數漸少,在千秋亭被返身殺回的孫恩陸軍擊敗。
敗退中,謝琰帳下都督張猛心生叛意,持刀從背後突然砍倒謝琰的戰馬,謝琰從馬上掉到地上,與長子謝肇、次子謝峻均被叛軍所殺,桓寶也在此戰中被殺。
謝琰的死引發了普遍的恐慌∶吳興《浙江湖州》太守庾桓擔心百姓響應孫恩,將屠刀伸向了手無寸鐵的百姓,誅殺了數千男女;同樣恐慌的還有東晉朝堂上的司馬元顯,他趕緊派遣冠軍將軍桓不才、輔國將軍孫無終、寧朔將軍高雅之《劉牢之女婿》等三將率軍迎敵。
然而,出乎意料的是,孫恩並沒有繼續從陸路北上與東晉主力決戰,而是轉兵東南,進攻臨海去了。
在接下來的數月之內,晉軍由北向南推進,與孫恩多次交手。
隆安四年十一月,寧朔將軍高雅之在餘姚與孫恩所部交戰,晉軍大敗,幾乎全軍覆沒,高雅之逃歸山陰。
東晉朝廷遂下詔任命劉牢之為鎮北將軍、都督會稽五郡諸軍事,率領北府兵再次東征;命令吳國內史袁山松構築滬瀆壘以防備孫恩進入長江流域。
聽說劉牢之率軍前來,孫恩又逃入海島之中。
劉牢之駐紮在上虞,分軍防守各縣,命令參軍劉裕率領數百人駐守在句章《寧波鄞州》。
句章城是抗擊孫恩登陸的最前線,但句章城池很小,城墻很低,而劉裕所部人數又少,每當孫恩從浹口進攻之時,劉裕總是身先士卒,沖在最前面,多次殺退敵人。
《宋書·武帝本紀》記載,當時參與東征的各路晉軍都軍紀松弛,所到之處燒殺搶掠,百姓們深受其苦,隻有劉裕的部隊紀律嚴明,為百姓所愛戴。
隆安五年《公元401年》二月一日,孫恩再次從浹口出擊,進攻劉裕所部據守的句章,劉裕多次擊破孫恩的進攻,孫恩再度退回海上。
孫恩看到無法在句章取得突破,同年三月轉兵北上,直撲海鹽《浙江海鹽》。
發現孫恩大軍北上後,劉裕率軍尾隨而至,在海鹽舊城構築防禦工事。
孫恩水軍抵達海鹽城外不久,即對晉軍發起進攻。
當時,海鹽城內兵力十分薄弱,劉裕從部隊中挑選出數百人組成敢死隊,全部脫去鎧甲,光著膀子,手中僅持短刀,大開城門,如天神一般狂呼殺出。
孫恩的部隊突然看到這股兇神惡煞之人,不禁心驚膽戰,遲疑間,劉裕等人即殺到眼前,孫恩軍個個丟盔卸甲,狼狽而逃。
此戰晉軍斬殺了孫恩大將姚盛。
雖然多次擊退孫恩的進攻,但劉裕深知敵眾我寡,終難持久,他對此十分憂慮,左思右想,終於想出一條計策。
一天深夜,他命令部隊全部隱蔽起來,把軍旗卷起,裝作已經撤軍的樣子。
第二天清晨,劉裕下令大開城門,隻讓幾個老弱病殘之人登上城墻。
孫恩的士兵遠遠問道∶『劉裕跑哪去了?』回答∶『昨夜已經離開了』孫恩信以為真,遂命令大部隊棄船,從容登岸。
劉裕趁著敵人沒有防備,發起突然襲擊,再次大破孫恩。
連連失利,孫恩感到無法攻下海鹽,就離開海鹽,繼續北上,而劉裕也率領軍隊沿著海岸線,邊追邊打。
劉裕臨出發的時候,海鹽縣令鮑陋派兒子鮑嗣之率領一千由吳地人組成的軍隊,請求擔任劉裕軍的前鋒。
劉裕說道∶『敵人都是精兵,吳人不會作戰,如果先鋒失利,肯定會連累我軍,你們隻用在我軍後面聲援』鮑嗣之不同意。
當夜,劉裕在四面八方安排了多處疑兵,每處不過幾個人,攜帶戰鼓、戰旗。
第二天,孫恩所部一萬多人發起進攻。
剛一交手,劉裕即下令各處伏兵高舉戰旗,擂響戰鼓,敵人以為漫山遍野均是晉軍,趕忙撤退。
鮑嗣之率軍一路追擊,孫恩的士兵們跑著跑著,發現晉軍人數並不多,又返身殺來,鮑嗣之被亂軍所殺。
劉裕且戰且退,身邊的士兵幾乎死傷殆盡。
當時,劉裕感到自己也可能無法幸免,急中生智,猛然間,他想出了一條妙計。
當他們逃到原來伏兵埋伏之處時,劉裕讓大家都停下來,讓他們剝下路邊屍體身上的衣服,以示閑暇。
追兵見狀,不禁疑竇叢生,擔心此地還有伏兵。
看到敵人猶疑不定,劉裕下令身邊的士兵返身朝敵人殺去,攻勢成猛,敵人這下都確信劉裕這支部隊不過是誘餌,晉軍肯定有伏兵,於是就撤退了。
九死—生的劉裕,收攏被打散的部隊,也撤退了。