济远和广乙两艘中国军舰在完成护送清军在朝鲜牙山登陆后,离牙山返航,在朝鲜丰岛海面,遇上日本联合舰队第一游击队吉野、浪速及秋津洲这三艘以高航速和高射速为特征的军舰。(这三艘军舰在后来黄海海战中重创北洋舰队,立下头功)
7时20分,第一游击队望见济远和广乙两舰,即时下战斗命令。7时45分,第一游击队旗舰吉野首先开炮:这是日本在甲午战争不宣而战的开始。中国军舰随后还击,两军展开激烈炮战。日本军舰在吨位、火炮、时速方面,较中国军舰占较大优势。福建船政局自制炮舰广乙受重伤,无法发射鱼雷,船身倾斜,于是退出战斗,在朝鲜十八岛附近搁浅,纵火自焚。济远舰在接战初始就有了伤亡,没有任何实战经验的管带方伯谦立刻怯阵,没有取得较大战果就开始逃跑。
8时30分,济远舰全速向西撤退。日舰猛追,济远舰悬起白旗。日舰追近,济远舰又加挂日本海军旗。浪速舰发出信号勒令济远舰立即停轮。
此时载有第二波増援朝鲜清军并悬挂英国国旗的高升号商轮和满载军械的操江舰驶来。日军三舰见高升号与操江舰,立即以浪速舰拦截高升号,以秋津洲舰拦截操江舰。济远舰藉机西撤,日舰以时速22.5节的「吉野」号穷追济远舰不舍,济远舰抛下高升号而走,并发尾炮攻击吉野号。
济远舰驶抵威海,在《航海日志》中捏造战果:击死倭提督并官弁数十人,彼知难以抵御,故挂我国龙旗而奔。而後丁汝昌误报济远舰击沉吉野号。事实上吉野皮毛未损,无恙而归。真的悲惨的是高升号运兵船!高升号被浪速击沉,殉难者达七百余人。操江舰也被俘虏。
丰岛海战成为了甲午战争的重要导火索。8月1日,中日两国同时向对方宣战。