百济虽已亡国,但是百济的旧臣们却一直抱有复兴亡国的愿望。661年,百济旧臣鬼室福信、道琛等引兵包围刘仁愿驻守的百济旧都。带方州刺史刘仁轨率领唐与新罗联合军前往解救刘仁愿之困。鬼室福信军在熊津江口设障欲阻拦刘仁轨军,但不敌唐军与新罗军的合力出击,节节退走,加上水涨桥狭窄,战死并溺死者万余人。由此,鬼室福信军的都城之围终被瓦解,鬼室福信等人亦退据任存城(忠清南道大兴附近)。此后,僧侣道琛自称领军将军,鬼室福信自称霜岑将军,招收徒众,其势力逐渐扩大。
为了唐军的休军养威,刘仁轨请新罗王派兵应对百济旧臣之军,但是新罗军却未能歼灭对手。就在此时,百济旧臣之间发生内部争斗,鬼室福信突然杀死道琛,并吞并道琛的兵众,掌握了实权。
662年,刘仁愿、刘仁轨等率领留镇旧百济之地的唐军与新罗军,大破鬼室福信等势力盘踞的若干个城栅。同时,刘仁愿还向唐朝廷奏请增加兵力,于是唐高宗发兵七千人增援,由左威卫将军孙仁师统领渡海至熊津。另一方面,在百济旧臣组成的势力中,鬼室福信专擅兵权,而被倭国扶植为王的扶余丰主掌祭祀,但是鬼室福信与扶余丰之间相互猜忌。663年六月,鬼室福信称患疾,计划等扶余丰前来问候时,趁机杀死他。然而,扶余丰事先得知了鬼室福信的计谋,率领自己的亲信抢先暗杀了鬼室福信。其后,扶余丰为了抗击唐军,派遣使者前往高句丽及倭国请兵支援。
另一方面,刘仁轨之军与孙仁师率领的唐援军会合后,兵势大振。于是,诸将军商议攻打扶余丰势力的作战方案,众多将领认为应该集中兵力进攻水陆要冲——加林城,但刘仁轨认为:“兵法避实击虚。加林险而固,攻则伤士,守则旷日。周留城百济巢穴,群聚焉。若克之,诸城自下。” 663年八月,孙仁师、刘仁愿以及新罗王金法敏统帅陆军,刘仁轨等率领水军及粮船同向周留城方向聚集。这时,援助扶余丰一方的倭国军队也正在渡海前赴朝鲜半岛的途中。
八月十七日,唐军与新罗军组成的联合军中的陆军,抵至周留城的城下,包围了周留城,水军170艘战船,阵列于白村江。二十七日,倭国援军的船师抵达白村江的江口,遭遇刘仁轨率领的大唐水军。两军相遇交战,倭军不敌落败,而唐军则坚阵而守。翌日(二十八日),倭军诸将与扶余丰不观气象,只是一厢情愿地认为只要抢先出击,必能攻破唐军之阵。于是,倭军诸将率领着前日败战后的不整兵卒,攻打坚守阵地的唐水军。唐军迎战,左右夹击包围倭船师。片刻之间,倭军败北,落入江水中溺死者众多,导致倭水的船舻轴无法回旋,倭军的将领朴市田来津仰天声叹,“切齿而嗔,杀数十人,於焉战死” 。据《旧唐书》记载,此次一战,唐军焚烧了倭军船400艘,当时的情景是“烟焰涨天,海水皆赤” 。在岸上守阵的扶余丰之军的精骑也被唐和新罗联合军的陆军所破,扶余丰侥幸脱身而逃,与数人乘船逃往高句丽。九月,留守在周留城的王子扶余忠胜等人率众降于唐军,其他诸城也都降顺。孙仁师与刘仁愿等胜利还师返回大唐;刘仁轨率兵镇守百济旧地。
随着百济的名实皆亡,包括百济的王族、贵族、僧侣等各个阶层的许多百济人,移民日本列岛。这些百济移民,大部分被倭王权集中安置在难波、近江和东国 等地,也有部分移民没有被王权掌握,分散在日本列岛的各地 。