沿海製置司水軍也有不少精明強悍的將領,他們預判一旦發動戰事,流求必然會召回濟州島和星島的艦隊。故在兵力布置上,他們將主力精銳投在了台北和台南兩個方麵,分彆有一千和八百艘戰船。至於台中,隻需要圍困住台中堡的守軍,在附近開辟新的登陸場。大軍上岸之後,再遠遠繞開堅固堡壘攻打往內陸的屯墾點,用以戰養戰的方式逐步向台北挺進。隻要拿下台北這個政治經濟中心,被包圍的台南和台中,便會不戰而降。
這個戰術雖然中規中距,卻也十分有效。即便擁有最多防禦火炮的台北也不可能擋住上千艘戰船。一旦被攻陷港口,台北必然陷入戰火之中,這是霹靂軍萬萬不願意看到的。故當得知沿海製置司戰船出港的消息後,張宣也率了艦隊朝台北急馳。憑著船快的優勢,霹靂軍戰艦提前到了台北。他並沒有下令全體進港,而是隻派了一半戰船進港防守,自己則率另一半戰船在外海,伺機而動。
進攻台北的宋軍,見到港口和外海上的幾十艘大型戰艦,直接就傻眼了,情報不是說流求的艦隊都在外地嗎?隻不過既然來到來了,豈可無功而返。他們還是仗著船多,硬著頭皮攻了上來。隻不過,在港口要塞火炮和戰艦火力的阻擊下,數波次的衝擊都被擊退。外海的霹靂軍戰艦也仗著船快,不斷地用回旋戰術炮擊,像剝洋蔥一樣,不斷擊毀擊傷外圍的宋軍戰船。星島戰役之後,借鑒了大食戰船的技術,霹靂軍對戰艦進行了改裝,大大提高了適航性、操縱性和船速。
台北的戰事迅速陷入了僵持之中。宋軍的戰船雖多,一時間卻攻不進港口,幾十艘戰艦和要塞炮組成的火力網實在太強了。宋軍又追不上外海的霹靂軍戰艦,隻能被其放風箏。宋軍的大型戰船不多,且多為弩炮戰船,火炮戰船很少,在遠距離上對霹靂軍戰船沒有多大的威脅。真正對霹靂軍戰船構成威脅的,反而是火戰船和爆破船,它們雖小卻輕快且數量眾多,一旦被貼身,便是滅頂之災。在高麗海岸吃過火戰船大虧的張宣,隻得指揮戰艦遠遠炮擊宋軍戰船,隻要雙方距離稍有靠近,便會迅速地撤退。
隨著時間的推移,情況對宋軍越來越不利,軍心也越來越浮動。畢竟霹靂軍消耗的隻是彈藥,而宋軍消耗的可是人命與船隻。隨著戰事的進行,宋軍將領發現每晚之後已方的船隻總會少一些。自抵達台北海域之日起,不少船隻便趁著夜色偷偷叛逃到霹靂軍一方。這些年來,霹靂軍的艦隊急速膨脹,其中不少水手甚至基層軍官便來自沿海製置司。眼下對陣的雙方,不少人都是昔日的同袍。在重文輕武的環境中,宋軍士兵地位十分低下,與霹靂軍士兵待遇根本不可同日而語。之前要駕船逃到流求根本不可能,如今流求近在眼前,那裡肯放棄機會。
宋軍指揮官原本想分兵,一部分攻擊港口,主力則尋機會解決了霹靂軍艦隊,再來攻打台北。隻不過到達台北海域不到十日,便叛逃了幾十艘戰船,且情況有愈演愈烈的趨勢。本著“無過便是功”的思維,他當機立斷決定退兵。如果將大部分戰船帶回去隻是小罪,不會禍及家人。如果戰損和叛逃太多,不僅自己性命難保,家人也會受到牽連。至於敗退的理由則很充分——霹靂軍戰艦主力已經回來了。