康熙二十二年(1683年)六月,施琅从桐山攻克花屿、猫屿、草屿,乘南风行驶并停泊到八罩。郑将刘国轩盘踞在澎湖,沿岸筑起短墙,购置了腰铳,环围有20多里作为壁垒。施琅派遣游击蓝理用乌船进攻,敌舰乘涨潮从四面涌合。施琅乘着楼船突入贼阵,被流箭射伤了眼睛,血从帕巾中溢出,但他督战毫不退却。总兵吴英接替了他,斩首了敌人3000多人,攻克了虎井、桶盘两个岛屿。紧接着施琅将100艘战船分列东西二路,派总兵陈蟒、魏明、董义、康玉率兵往东指向鸡笼峪、四角山,往西指向牛心湾,以分散敌人兵力。施琅亲自督领56艘船分成8队,以80艘船紧跟其后,扬帆直驰进去。敌方倾巢出来拒战,总兵林贤、朱天贵先入战阵,朱天贵战死。将士们从正中奋勇出击,从辰时战到申时,焚烧敌舰100多艘,溺死的敌兵不计其数,终于攻下了澎湖。
在攻战中,施琅显示出了他出色的军事指挥才能。他治军严肃整齐,通晓阵法;尤其善于水战,熟悉海上风向气候。在攻打澎湖时,一次施琅要出师,正好李光地想赶紧回去,就问施琅:“大家都说刮南风不利出战,如今就限在六月出师,为什么呢?”施琅说:“北风刮起来日夜都很猛烈。现在进攻澎湖,不可能一战就攻克下来。风起船只被吹散,将领如何指挥作战?夏至前后20多天里,风小,夜里尤为安静,战船可集中停泊在汪洋上。见机行动,不过7天,举事必定取胜。假使偶然遇有飓风,那么这是天意,不是人事先所能考虑到的。郑氏的将领中刘国轩最为勇猛,用其他将守卫澎湖,虽然战败,他们必定要再战。如今以刘国轩驻守,战败了就会胆怯,台湾就可以不战而下。”到作战时,东南方向起了云,刘国轩望见,说是将起大风,极为欢喜。可过了一会,雷声隆隆,刘国轩推开案桌,突然站起来说:“这是天命啊!我今日要打败仗了。”澎湖被施琅占领后,刘国轩逃回到台湾。
郑克塽得知澎湖失守,大为惊恐,遣派使者到施琅军前乞降。施琅上疏奏陈,康熙允许接纳郑氏。八月,施琅统率水军进入鹿耳门,到达台湾。郑克塽率领属下剃了头发,跪迎于水岸,缴出延平王金印。人们以为施琅一定会报父仇,对郑氏下毒手。施琅说:“孤岛新附,一有诛杀,恐怕人心反复无常。我之所以要含忧饮痛,是以国事为重,不敢顾及私仇啊!”
台湾平定后,施琅从海道向朝廷报捷。奏疏传到京师,正值中秋佳节,康熙赋诗表彰施琅的功勋,再次授他为靖海将军,封靖海侯,世袭永不废弃,还赐予御用袍服及其他衣服物品。施琅上疏推辞所封侯爵,请求按内大臣的样子赐予花翎,部里讨论说没有这样的先例,康熙命令不要推辞,并遵照他的请求赐予花翎。