拥立南明
1645年(清顺治二年、明弘光元年)之后,张煌言先是跟钱肃乐率领义军,驰骋宁绍,转战浙东打击清军。以后又与郑成功所率的军队在天台会师。鲁王到达绍兴,开始主持浙东反清事宜,26岁的张煌言以赐进士出身的身份,先后任翰林院编修、兵科给事中等职。
此时,福建的郑氏地方势力也奉唐王朱聿键在福州建立另一个小朝廷,建号“隆武”。于是,在东南沿海便有了两个并立的小朝廷,这就决定了抗清力量无法统一、合作,反形成互相牵制、抵消的局面。
三入长江
1647年(清顺治四年、明永历元年)四月,任职左都御史的张煌言奉鲁王命监张名振军,他率战舰浮海至崇明,一度登陆,但不幸为飓风所袭失败,全军覆没,自己也被俘后逃出,这是他首次指挥义军作战。1648年(清顺治五年,永历二年),张煌言参加义军恢复宁波失败,便率军至上虞县平冈结寨固守,并一度联合其他义军对清军发动进攻,焚上虞、破新昌,逐渐成为浙东人民抗清的一面旗帜。1651年(清顺治八年,永历五年),义军拥奉鲁王在舟山重建行在,八月,鲁王封张煌言为兵部左侍郎。总督军务的张名振和张煌言奉鲁王率大军从海上进攻崇明,获初胜,但根据地舟山却因防守空虚,被清军袭破,二张匆匆回军,已回天乏力,只能保护鲁王撤至福建,已向云南永历帝称臣并承认永历帝为正统的郑成功,将鲁王安置于金门岛。张煌言主动与郑成功交好,两位抗清战士结下深厚友谊。
1653年(清顺治十年,永历七年),张煌言随张名振又一次攻入崇明,第二年正月,二张率大军溯长江西上,军容严整,震动大江两岸,一度扬威镇江金山,因湖湘各处的永历帝军队发生变故,二张无法前进,只能拚死突破敌人长江防线退回崇明。四月,二张听说清军据守的南京空虚,遂又率军西上,郑成功亦助兵2万,这一次西征又因为军事上失利,被迫退回已光复的舟山岛,张煌言随后又到达闽北秦川岛驻兵。
1658年(清顺治十五年,永历十二年),永历帝派使臣到达福建厦门,封郑成功为延平郡王、招讨大将军,张煌言为东阁大学士兼兵部尚书,负责浙江军事。不久,两位抗清英雄联手上演了一场在抗清斗争中足以彪炳千秋的壮烈史剧。
攻打南京
1659年(清顺治十六年,永历十三年)五月,郑成功率水陆大军17万人,在舟山会合了张煌言所部6000人,自崇明口入长江,开始了向清军的进攻。在这场战役中,张煌言表现了他卓越的军事、政治才能。
还在大军刚到长江口时,张煌言就建议郑成功先占领崇明全岛作为后方根本。这是他多次进长江的经验,可惜郑成功未采纳,郑氏主张全军西。六月十七日,张煌言攻入瓜洲,在军事会议上,他建议大军先取镇江,自己率水军进攻南京观音门,掩护郑成功在镇江城下的军事行动。是月,张煌言部西上,仪征、六合的清军如惊弓之鸟,而广大人民则热烈拥戴张煌言的大军。义军到达观音门江面,企盼郑成功从陆上会师进攻南京。时据守南京的清江南总督郎廷佐因城内实力不济,异常恐慌。
但郑成功不懂得兵贵神速的道理,而是依旧坐船惯慢地西上。张煌言在南京江面空等了两天,不见大军到来。此时,清军乘机加强了南京的防务,他们侦知张煌言孤军在浦口,想趁郑成功大军未到时击破张煌言军,入夜,清军80艘快船偷袭张煌言水军,两军接战,义军奋勇杀敌,打败清军,第二天凌晨,7名义军战士还克复了江浦城。
克复芜湖
1659年(清顺治十六年,永历十三年)七月初七日张煌言收复芜湖,遂即于该城驻节,并分四路军攻取溧阳至广德、池州、和州、宁国,并以郑成功名义发布檄告,号召各地“归正反邪,端在今日”,“先机者有不次之赏,后至者有不测之诛”。一时皖南、苏南大为震动。
此时,张煌言派往各地的军队进展十分顺利,旬月之间,连克皖南的太平、宁国、池州、徽州、无为、和州及苏南的高淳、溧阳、溧水等城池,共计四府、三州、二十四县,部下水陆大军发展到数万人,湘赣鲁豫亦为之震动,忠勇之士纷纷输款欲投效力,这是张煌言抗清事业的辉煌顶点。而清廷也开始慌张起来,除征调大军南下镇压以外,顺治皇帝也开始筹划是否要“御驾亲征”。不幸,此时郑成功的大军却在南京城下战败,使郑成功、张煌言共同创造的大好抗清局面功败垂成。
郑成功大军一撤,张煌言孤军悬于芜湖一带,使得清军能够集中力量回过头来对付他。1661年(清顺治十八年,永历十五年)三月,张煌言率兵进入闽北的沙埕,打算与郑成功再度会师。但是郑成功的主力全力收复台湾。