程璧光,字恒启,号玉堂,广东香山县田边人。父亲程培芳是旅旧金山华侨,1871年病故于檀香山,璧光扶柩归里。父亲去世后,家庭生活变得越来越困难,为继续学业,投奔其姐夫陆云山。时福州船政局刚制成“靖远”炮船,由陆云山管带。1875年,璧光考入福州船政学堂程学习航海驾驶。毕业后上“扬武”舰当练习生。后历任南洋水师“超武”炮船管带、“元凯”炮船管带、福建水师学堂教习、广东水师“广甲”快船帮带等职。积功擢都司,调升“广丙”舰管带。
1894年5月,清廷第二次校阅水师,广东水师记名总兵余雄飞带“广甲”、“广乙”、“广丙”三舰往北洋会操,演习时“广东三船沿途行驶操演船阵,整齐变化,雁行鱼贯,操纵自如”,“中靶亦在七成以上”。会操结束后,朝鲜局势渐趋紧张,程璧光上书李鸿章,请求留北洋备战。李鸿章采纳此议,“广乙”、“广丙”二舰因留北洋,“广甲”舰返回广东解送岁贡荔枝后,亦留北洋。于是广东三船皆编入北洋水师。
7月25日,日本海军在丰岛附近海面挑起战争,9月17日,北洋海军主力与日本联合舰队在黄海海面遭遇,展开大战,当时“广丙”在港口执行警戒。中午12时50分战斗打响后,程璧光指挥“广丙”舰于午后1时半赶到战场投入战斗,2时40分,“广丙”发炮击伤日舰“西京丸”,并引发火灾,“福龙”鱼雷艇趁机发射鱼雷两枚,当时日本海军军令部长桦山资纪海军中将正乘坐在“西京丸”上,自以为“我事已毕”,惟瞑目待毙。可惜两枚鱼雷都未击中,侥幸逃脱。海战中,程璧光腹部被弹片击中,血染内衣。
1895年1月30日,日军开始进攻威海卫,此后北洋海军被困于威海卫港内。2月11日,提督丁汝昌和护理左翼总兵署“镇远”管带杨用霖皆拒降自杀。程奉海军提督英人马格禄之命,向日本递交降书。战后,程璧光被革职回故里。其弟奎光,时任广东水师“镇涛”船管带,因与孙中山同乡关系,在广州加入兴中会。程璧光归乡后,经孙中山及其弟劝说,亦答应入会。1895年10月,兴中会起义计划泄露,程璧光逃至南洋槟榔屿。1896年,由李鸿章推荐,复供职于海军。后历任兵舰管带、船政司司长、统领巡洋舰队等职。北洋政府时期,程璧光一度任海军总长。1917年,孙中山鼓励程璧光与北洋政府脱离关系。7月21日,程璧光率部分舰只举义南抵广州,并于次日发表海军护法宣言,史称护法舰队。9月10日,军政府成立,孙中山被选为大元帅,程璧光任海军总长。1918年2月26日,程璧光在广州遇刺身亡。