670년(문무왕 10) 3월 설오유는 신라군 1만 명을 이끌고 고연무가 이끄는 고구려군 1만 명과 함께 압록강을 건너 오골성에 이르렀다. 그런데 당에 부용된 말갈병이 먼저 도착하여 진을 치고 있었다. 4월 4일 양측이 크게 전투를 벌였는데 신라 · 고구려 연합군이 대승을 거두었다. 이를 오골성(또는 개돈양) 전투라 한다. 그러나 당나라 장수 고간이 지휘하는 대규모의 당군이 투입되자, 설오유가 이끄는 신라-고구려 연합군은 백성(白城)으로 전략상 후퇴하여 전선을 형성하였다. 오골성 전투는 나당전쟁의 개전이라는 점에서 역사적 의의를 찾을 수 있다.
나당전쟁의 개전과 관련하여, 당시 강성해진 토번이 당을 공격하자, 당은 이에 대응하기 위해 군사력을 재배치하면서 한반도 주둔 당군을 서쪽으로 이동시켰고, 이때 생긴 군사적 공백이 신라의 공격을 초래하였다는 견해가 있다. 그러나 토번은 나당전쟁의 개시와 구체적 관계가 다는 것이 사료틀 통해 확인되고 있다. 실제로 토번과 당의 무력 충돌은 670년 4월이어서, 오골성 전투 시점과 차이가 없다.
또한, 나당전쟁의 1차적 원인은 패강 이남의 영역을 신라에 양도하기로 한 동맹 간의 약속을 파기하고 한반도를 지배하려던 당의 팽창 정책에 있다. 신라는 이를 인식하고 스스로 항전을 결정하였다. 즉 신라의 의지에 따른 전쟁이었다.
오골성의 지리적 위치와 관련하여 오골, 개돈양, 백성이 『삼국사기』 지리지에서 확인되지 않는다. 또한, 2만 명의 병력으로 요동지역까지 침입한다는 것은 상정하기 어렵다는 부정적 견해가 있다. 그러나 『삼국사기』 신라본기 문무왕 10년에 "압록강을 건너 옥골에 이르렀다(度鴨淥江至屋骨)."라고 기록되어 있어, 요동 지역임을 알 수 있다. 오골(烏骨)과 옥골(屋骨)은 동일한 곳으로 추정되며, 요령성(遼寧省)의 봉황성(鳳凰城, 지금의 단둥시)으로 추정된다.