668년 7월 문무왕은 대성산기슭에 주둔하던 당군과 합류하기 위해 한성주에서 주력군을 북진시켰다. 이에 고구려는 蛇川之原에서 신라군을 막으며 소위 사천원전이 벌어졌다. 신라 장군 문영 등이 고구려병을 대파하고, 9월 21일 나당 양군이 사수에서 합류했다. 이에 연남건은 평양성 인근의 사수에서 항거했지만 패배하고 직후 평양성이 함락되며 고구려는 망했다. 668년 평양성 인근의 사수전은 662년 방효태부대가 전멸당한 사수전과 동일 장소에서 벌어진 전투로 사수는 평양성과 대성산성 사이에 남북으로 흐르는 합장강으로 비정된다. 그런데 학계에서는 668년의 사천원전을 평양성 인근의 사수전과 동일시한다. 그러나 이러한 견해는 신라군이 668년 7~8월중 사천원에서 고구려병을 격파한 후 평양성 인근 사수에서 9월 중순 당군과 합세하여 사수전을 치른 상황을 합리적으로 설명하지 못한다. 그러므로 사수와 사천원은 다른 지역이며, 668년의 사천원전과 사수전은 구별되어야 한다. 사천원은 명칭에서 알 수 있듯이 사천+원의 지리적 특성을 가졌다. 당시 고구려는 방어에 유리하게 강을 전면에 두고 그 후면의 평원에 대군을 배치해 신라군을 막고자 했다. 이러한 상황과 한성주에서 평양으로의 북진로를 감안하면, 사천원은 서흥강의 중하류에서 사리원 일대까지의 강과 평야가 연속된 지역에 비정된다. 사천원전은 백제 멸망시 가장 유명한 전투인 황산벌전과 매우 유사한 정치적 군사적 상황 하에 전개되었다. 왕성이 당의 침략에 의해 위태로운 와중에 백제나 고구려 모두 당군과 합류하기 위해 진격하던 신라군을 막아섰다. 이를 위해 지리적으로 유리한 지역을 골라 군사를 배치하고 오로지 방어에 나섰다. 당시 백척간두의 궁지에 몰린 양국이 나당군의 합류를 막고자 한 의도는 분명히 목적-당과의 협상 시간 확보, 나당간의 불화 유도, 그리고 645년 안시성 회군 내지 662년 평양성 회군 등의 재연 기대 등-한 바가 있었지만 실패하며 국가가 멸망하게 된다.
668년 7월 문무왕은 대성산기슭에 주둔하던 당군과 합류하기 위해 한성주에서 주력군을 북진시켰다. 이에 고구려는 蛇川之原에서 신라군을 막으며 소위 사천원전이 벌어졌다. 신라 장군 문영 등이 고구려병을 대파하고, 9월 21일 나당 양군이 사수에서 합류했다. 668년 평양성 인근의 사수전은 662년 방효태부대가 전멸당한 사수전과 동일 장소에서 벌어진 전투로 사수는 평양성과 대성산성 사이에 남북으로 흐르는 합장강으로 비정된다.