1655年(清顺治十二年、明永历九年),张名振与张煌言合兵三入长江,抵燕子矶,因兵力单弱,无功而返;乃会同郑成功部甘辉、陈六御等收复舟山,张名振缟素入城,遍觅母尸,哀动三军。岁末,张名振猝死。死前曾言:“吾于君母恩俱未报,若母尸不获,毋收吾骸。”言毕起坐,击床而逝,死不瞑目,犹凛凛有生气。后葬于普陀勾山南岙村。张名振原本遗嘱由张煌言统领其军,而郑成功却下令由陈六御接掌。次年清军再度占领舟山,陈六御阵亡,在将士的推戴下张煌言成为原鲁监国系统军队的主要领袖,继续同郑成功联合作战。
1658年(清顺治十五年、明永历十二年),永历帝封郑成功为延平郡王,张煌言为兵部左侍郎。同年清军进犯云贵,郑成功、张煌言进军浙江,攻克乐清、宁海等地,在羊山遇台风,损失巨舰百余艘,漂没战士八千余人,被迫撤回厦门。
1659年(清顺治十六年、明永历十三年),张煌言与郑成功一起,为牵制大举向云贵地区进攻的清军,再次率义军入长江作战。先是,义军抵达并占领崇明。张煌言对郑成功建议说:“崇明,江、海门户”,宜先将义军“定营于此”,稍事休整,务使义军“进退有所据”。但郑成功未听从。当时,驻防长江的清军,在瓜洲金、焦二山间横上拦江铁索(俗称“滚江龙”),且在沿江两岸遍置西洋大炮,防守颇为坚固。张煌言却率义军乘十七条船机警巧妙地破坏了江防防线,在后援的郑军配合下,“翦江而渡”,于六月一举攻占瓜洲。
攻克瓜洲后,张煌言又向郑成功建议全力攻取镇江,然郑成功顾虑驻守江宁(南京)的清军将赶往支援。张煌言则主张可先派一支舟师水军,佯攻直捣江宁北门,即观音门,这样“南京清军自不暇出援”。
同时,他还提议这支水军应溯江而上,前往芜湖一带活动,以防阻江楚方面清军的来援。郑成功采纳了意见,并命他向南京方向进攻。此时,张煌言所率义军将属人数不满一万,渡江之舟不满百艘,仍毅然率军西行。不久,张煌言攻克仪真,并进军六合,沿途受到沿江民众的热烈欢迎,“仪征吏民赍版图迎降五十里外”。
当得悉郑成功攻克镇江后,张煌言又致信郑成功,言及当“先抚定夹江郡县”后,再从陆路进军,直取南京,但郑成功未采纳他的建议,“竟从水道进”。致使有利战机瞬间丧失,而南京清军得以喘息并获后援而巩固城防。
六月二十八日,张煌言军直抵南京观音门外江面,停留两日仍不见郑军的到来,只得派遣别的将领率轻舟数十艘的水军,“直(西)上攻芜湖”,他自己则率军驻扎在浦口。待郑成功率“水师”到达后,张煌言又于七月七日赶到芜湖,在此,他“部勒诸军”,将义军兵分四路,分道攻城略地,且在沿途“移檄诸郡县”,张贴文告。许多故明降清的旧官吏,见到文告,纷纷倒戈,“于是太平、宁国、池州、徽州、广德及诸属县皆请降”,使义军很快便收复了四府、三州、二十四县,城池近三十座。义军纪律严明,所过之处,对民众百姓“秋毫无犯”。
张煌言每“经郡县,入谒孔子庙,坐明伦堂,进长吏,考察黜陟,略如巡按行部故事,远近响应”。致使出现“父老争出持牛酒犒师,扶杖炷香,望见衣冠,涕泪交下,以为十五年来所未见”的空前盛况。而“濒江小艇,载果蓏来贸易者如织”,给义军很大支持与鼓舞。可是,这一大好形势,却因郑成功率军攻打南京城的失利,而很快急转直下。
正当张煌言收复徽州时,闻郑成功在南京城下兵败之事,于是“还芜湖收兵,冀联合瓜洲、镇江(义)军为守计”,期待有利时机,再作他图。不久,张煌言又得到郑成功军已放弃瓜洲、镇江等地,而退回海上的消息,致使张煌言所率义军处于进退维谷、腹背受敌的危险处境,很快遭致溃败。
此际,清两江总督郎廷佐一方面调遣水军切断张煌言义军东退的水路,另一方面又写信向张煌言劝降。张煌言对招降书“拒不应”,同时,为摆脱困境,又率“余兵道繁昌,谋入鄱阳湖”,向江西发展。当义军船队进抵铜陵时,却与湖广来援的大批清军水师遭遇,与之激战而败退。
最后,张煌言“抚残兵仅数百,退次无为,焚舟登陆”。又从陆路自桐城,取道霍山、英山,到达东溪岭时,适逢清军“追骑至,从者尽散”。张煌言好不容易才突围而出,只得“变服夜行,至高浒埠,有父老识之,匿于家数日,导使出间道,渡江走建德、祁门乱山间”。此时张煌言身染疟疾发作,几不能行,但他仍不顾病痛,奋力疾行。到达休宁后,“得舟下严州”。登岸后,又复行山路,途经浙江的东阳、义乌“至天台达海”。
历尽千难万险,兵败后绕道潜行二千余里,九死一生,终于回到了浙江沿海地区。此后,他“收集旧部”,准备东山再起。郑成功得到张煌言生还的消息后,也将自己的部分兵力拨归他统辖,致使义军稍有壮大。
张煌言将义军屯驻长亭乡,“筑塘扞潮,辟田以赡军”需军饷。同时,张煌言又派遣使者向桂王禀告自己兵败的消息。桂王得悉后,在敕书中表示安抚慰问的同时,又给他“加兵部尚书”的职衔。