나당전쟁이 절정에 달하였던 675년 9월당나라 설인귀(薛仁貴)가 수군을 거느리고 천성을 공격함으로써 싸움은 시작되었다. 이 때 설인귀는 신라인으로 당나라에 유학중이던 풍훈(風訓)을 향도로 삼아 천성을 침공하였다.
이에 신라 장군 문훈(文訓)의 군대는 당병을 맞아 싸워서 1,400명을 죽이고, 전함 40척을 빼앗았으며, 말 1,000마리를 얻는 승리를 거두었다. 이 싸움에서 패퇴한 설인귀의 수군은 다음해 11월 다시 기벌포(伎伐浦)에 나타났으나 신라의 막강한 수군에 의하여 전멸됨으로써 신라는 대당전쟁을 승리로 끝맺게 되었다.
천성의 지리적 위치에 대해서는 『삼국사기(三國史記)』에 보이는 천산(泉山)ㆍ백수산(白水山)이 모두 같은 곳으로 상정되며 지금의 황해도 재령 부근으로 보는 설과 예성강(禮成江) 입구에 있었다는 설이 있다.