마지막 왕인 의자왕의 아들이다. 644년(의자왕 4)에 태자로 책봉되었고, 660년 7월 백제의 왕성이 나당 연합군에게 함락될 때 웅진성(熊津城)으로 도피해 있다가 결국 신라군의 포로가 되었다. 그 해 9월 당나라 장수 소정방(蘇定方)을 따라 의자왕 및 왕족·귀족들과 함께 당의 수도인 뤄양(洛陽)으로 끌려갔다.
백제 부흥 운동을 종식시킨 후 백제 유민들을 안집(安輯)하려는 당의 구상에 따라, 663년 9월 당나라 장수 손인사(孫仁師)와 함께 백촌강전투에 참전하였다. 이 때 당은 그에게 광록태부태상원외경(光祿太夫太常員外卿)을 제수하는 동시에, 웅진도독 대방군왕(熊津都督帶方郡王)에 임명하였다.
웅진도독의 자격으로 664년 2월 당나라 장수 유인원(劉仁願)이 주재한 가운데 웅령(熊嶺)에서 신라의 김인문(金仁問)과 서맹(誓盟)을 하였다. 그리고 이듬해 8월에도 유인원 주재로 신라의 문무왕과 웅진 취리산(就利山)에서 화친을 서맹한 뒤, 백제의 옛 땅에 대한 웅진도독부의 지배권을 신라로부터 인정받았다.
이에 따라 옛 백제의 귀족·관료들을 중심으로 1도독부 7주 51현제를 백제의 옛 땅에 실시하게 되었다. 그런데 취리산 서맹 직후 유인원 일행이 당으로 돌아가자 그도 신라의 압력을 두려워해 당으로 간 뒤 다시는 본국으로 돌아오지 않았다.
그 뒤 신라가 백제의 수도였던 사비성(泗沘城)에 소부리주(所夫里州)를 설치함으로써 백제의 옛 땅에 대한 지배권을 장악하자, 한반도에서 축출된 웅진도독부는 677년 2월 만주의 건안고성(建安故城)으로 옮기게 되었다. 이 곳에서 그는 백제 유민들을 안집하였다. 죽은 뒤 당 조정으로부터 보국대장군(輔國大將軍)을 추증받았다. 묘지는 중국 허난성(河南省) 뤄양의 북망산(北芒山)에 있다.