648년(보장왕 7) 9월에 중국 당나라 장군 설만철(薛萬徹) 등이 고구려를 공격하기 위하여 바다를 건너 압록강으로 들어와 박작성(泊灼城) 남쪽 40리에 군대를 주둔시켰다.
이 때 박작성의 성주로 있던 소부손은 보기(步騎) 1만 여명을 거느리고 이에 항거하였다. 설만철이 우위장군(右衛將軍) 배행방(裵行方)을 보내어 보졸(步卒) 및 여러 군사들로 공격하였다. 이에 고구려군은 무너지고 박작성은 포위되었다.
그러나 박작성은 산과 압록강으로 가로막힌 천연의 요새였기 때문에 적군에 함락되지 않았다. 이 때 장군 고문(高文)이 오골성(烏骨城)과 안지성(安地城) 등의 군사 3만을 거느리고 구원하러 왔으나 모두 당군에게 패배하였다. 한편 이러한 『삼국사기』의 기록과는 달리 중국측 사료인 『구당서』·『신당서』에는 이때 소부손을 목베어 죽이고 성을 함락시켰다고 기록되어 있다.