鸡笼之战(又称为第二次圣萨尔瓦多城战役、圣救主城之战、圣救主城荷西浴血战),是1642年荷兰东印度公司为从西班牙帝国手中夺取北台湾统治权,所发动之战争。由于双方战力相差过大,西班牙军对抗荷军仅6日就投降,进而结束了台湾西班牙统治时期。战后荷兰人把圣萨尔瓦多城改建成北荷兰城,作为往东台湾探金的据点;又在圣多明哥城原址附近重新修筑安东尼堡,以掌控此地的硫磺贸易。
1637年,菲律宾总督塞巴斯提安·巫它度·德·科奎拉(英语:Sebastián Hurtado de Corcuera)下令拆除淡水的圣多明哥城,以及鸡笼岛圣萨尔瓦多城的看守堡(la mira)、撤守堡(la retirada)、桶方堡(el cubo),只保留主城“圣萨尔瓦多”;不过拆除计划受到当地道明会的反对,桶方堡未被拆除。鸡笼驻军也缩减至百余人,且科奎拉每年都会把部分士兵调回菲律宾。
西班牙人裁军的消息传到大员后,荷兰人认为征服鸡笼的时机已经到来。1641年8月,荷兰东印度公司第6任台湾长官保罗·杜拉弟纽司派遣205位荷军士兵,及约500位淡水原住民组成的联军,试图进攻鸡笼。只是荷军侦查过鸡笼岛上的据点后,判断火炮数量不足以攻破城堡,劝降对方失败后即返回大员。稍后荷军在归途上烧毁了大鸡笼社,以夸耀军威,并把淡水纳入治下。经过此事,波提罗长官为强化鸡笼岛的防御,违背科奎拉的指示,重建可以俯瞰圣萨尔瓦多城的撤守堡,以免尔后荷军从此地居高临下炮击主城。
1642年,巴达维亚当局以拉莫提(英语:Isaac Johannes Lamotius)(Johannes Lamotius)为统帅,增援大员当局进攻鸡笼。不过杜拉弟纽司担心夏季季风结束前,援军无法抵达台湾,遂派哈鲁斯(Hendrik Harouse)率396位士兵先行进攻。8月19日,哈鲁斯的舰队抵达鸡笼岛水域,上岸时因受潮流影响及西军火炮压制,只得退回船上。隔日,荷军迂回至鸡笼岛东侧之八尺门水道附近,打算夺取岛上的制高点,亦即原为看守堡所在之山丘。荷军抢滩时,与20位西班牙士兵交战,因西军欠缺后援,不久后就退回撤守堡,让荷军成功上岸,并攻下了山丘。
21日起,荷军在看守堡山丘构筑阵地,和撤守堡展开炮击战。然而荷军地势上占有优势,加上双方火力相差过大,西班牙军每发射10枚炮弹,荷军就反击200多枚。交战结果西军损伤惨重,撤守堡胸墙严重损毁;圣萨尔瓦多城也受炮火波及,损毁一处棱堡。交战途中,有1000位淡水原住民(巴赛族)弓手抵达鸡笼岛对岸,替荷军助阵,不过哈鲁斯认为弓箭对战况帮助不大,令其留驻原地。
荷军除了持续炮击外,另外又准备了2台18磅的加农炮,24日布署完成后,共以108枚炮弹轰毁了撤守堡城墙。到了25日,西军共阵亡6位士兵及损毁2台加农炮,西军只得放弃抵抗,退回圣萨尔瓦多城。荷军占领撤守堡后,几乎已确定获胜,因为从此处可观察圣萨尔瓦多城守军的动向,并切断城内水源。当晚,波提罗与城内所有官兵及传教士商议,大多数人皆认为无力抵抗荷军,遂于26日开城投降。
9月5日,拉莫提率军抵达大员,杜拉弟纽司还不知道荷军已经获胜,仍派拉莫提北上增援。没多久后,荷军攻陷鸡笼的消息传到大员,不过拉莫提照样出发,于13日抵达鸡笼,并接管此地的指挥权。
此役结束后,西班牙俘虏被运至巴达维亚囚禁,然而不久后即获释,于1643年6月29日平安返回马尼拉。可是波尔的里奥害怕被追究战败责任,不愿随其他人回去马尼拉而滞留于望加锡。结果菲律宾总督科奎拉被迫承担丢失台湾的责任,1644年卸职总督后就遭当局逮捕,坐了4年牢。