문무왕
문무왕(文武王, 626년~681년 7월 21일 (음력 7월 1일))은 신라 제30대 왕( 661년 음력 6월 ~ 681년 음력 7월 1일)이다.
태종 무열왕 김춘추와 문명왕후(김유신의 둘째 누이)의 맏아들로, 김(金)이고, 이름은 법민(法敏)이다. 668년에 고구려를 멸망시켰고, 신라에 계림대도독부를 설치하여 한반도 전 지역을 차지하려 했던 당나라의 군대를 나당 전쟁에서 격퇴함으로써 676년에 삼국통일을 이룬 왕이다. 왕후는 파진찬 김선품의 딸 자의왕후이다.
《삼국사기》는 왕이 681년에 승하했다고만 했을 뿐 왕이 언제 태어났는지, 사망 당시의 나이가 몇 살이었는지에 대해서는 기록하고 있지 않다. 『문무대왕비』에 따르면 왕이 승하할 당시의 나이가 56세였다고 하는데, 이를 토대로 추산하면 문무왕의 생년은 진평왕 건복 43년(626년)에 해당한다.
《삼국사기》에는 출생에 대한 다음과 같은 설화가 전해진다.
진덕여왕 4년(650년)에 당에 사신으로 파견돼 고종에게 〈치당태평송〉(致唐太平頌)을 바쳤다. 고종은 이를 가상히 여겨 법민에게 태부경(太府卿)이라는 벼슬을 내렸다. 654년 아버지 김춘추가 진덕여왕의 뒤를 이어 왕위에 오른 뒤 파진찬으로써 병부령직에 임명되었다. 655년 태자로 봉해졌다. 태종무열왕 7년(660년) 나·당 연합군이 백제를 칠 때, 김유신과 함께 5만 군사를 거느리고 백제를 멸망시켰다. 이어 태종무열왕 8년(661년) 부왕이 승하하자 곧 즉위하였다.
원년(661년) 6월 상중(喪中)이던 문무왕에게 당은 고구려를 치는 당군과 웅진도독부에 고립된 당군에 군수물자를 지원하고 신라가 백제 부흥군(復興軍)을 진압하는데 나서줄 것을 거듭 요청해왔다. 평양으로 먼저 군량을 보내면 웅진으로 통하는 물자 수송로가 끊어질 것이고, 그 수송로가 끊어지면 웅진도독부의 당군들은 백제군에게 궤멸될 것이라는 판단을 내린 왕은 8월에 직접 여러 장수를 거느리고 시이곡정(始飴谷停)으로 향했다. 그 길목에 있는 옹산성(甕山城)에 주둔하고 있던 백제 부흥군을 9월 25일부터 공격하기 시작해 27일에 함락시켰다. 옹산성을 함락시키고 웅현성(熊峴城)을 쌓아 웅진도독부로 통하는 군량수송로를 다시 개통시킨 뒤, 상주(上州) 총관(摠管) 품일(品日)과 일모산군(一牟山郡) 태수 대당(大幢)·사시산군(沙尸山郡) 태수 철천(哲川) 등이 이끄는 군사들이 우술성(雨述城)을 쳐서 또 함락시키고, 10월 29일에 서라벌로 돌아와 당의 조문 사절을 맞이했다. 한편 평양을 포위하고 있던 소정방이 보낸 함자도(含資道) 총관(摠管) 유덕민(劉德敏)이 와서 문무왕에게 당군에 대한 군량 지원을 요청하였다. 왕은 이듬해 1월 김유신으로 하여금 수레 2천여 대에 쌀 4천 섬과 조(租) 2만 2천여 섬을 싣고 평양으로 가게 하였다. 이들 군은 이듬해 2월에 무사히 군량을 전달하고 귀환하였다.
2년(662년) 봄 정월에 당은 문무왕을 개부의동삼사(開府儀同三司) 상주국(上柱國) 낙랑군왕(樂浪郡王) 신라왕으로 책봉했다. 2월에는 탐라국 임금 도동음률(徒冬音律)이 항복해 와 신라의 속국이 되었다. 이때 신라에서는 백제에 주둔하고 고구려를 치는 당군의 요청이 들어올 때마다 식량을 보내고 옷을 보내고 하느라 창고에 쌓아둔 양식은 고갈되고, 농사 때를 망쳐 백성들이 풀뿌리도 오히려 부족할 지경이었지만, 반대로 웅진도독부에 있는 당군의 군량 창고에는 쌀이 남아돌다 못해 썩어나고 있었고 웅진도독부에서는 그 뒤로도 수시로 신라에 군량을 요구하였다. 3월에 내린 대사면령은 이러한 가운데서 오는 민심이반을 막기 위한 것이었다고 추정된다. 7월 왕은 왕제(王弟) 인문(仁門)을 사신으로 당에 보내는 한편, 웅진도독부의 당군은 지라성(支羅城)과 윤성(尹城), 대산(大山)과 사정(沙井)의 백제 목책을 깨뜨리고 신라군과 합세해 진현성(眞峴城)을 공격해 함락시키고 신라의 군량수송로를 열었다. 8월에는 흠순 등 19장군을 시켜 내사지성(內斯只城)의 백제 부흥군을 깨뜨렸고, 대당(大幢) 총관(摠管) 진주(眞珠)와 남천주(南川州) 총관 진흠(眞欽)이 병을 핑계로 한가로이 지내며 나랏일을 돌보지 않는다는 죄를 물어 처형하고 그 일족까지 멸했다.
3년(663년) 봄 정월에는 서라벌 근교의 남산신성(南山新城)에 장창(長倉)을 지었다. 또한 부산성(富山城)을 쌓았다. 이보다 앞서 백제 부흥군은 662년 12월에 험준한 주류성(周留城)에서 주변에 평야와 강이 많은 피성(避城)으로 수도를 옮겼는데, 663년 2월에 흠순과 천존은 백제 거열성을 쳐서 빼앗고 거물성과 사평성을 공격하여 항복시켰으며, 덕안성을 쳐서 1,070명을 목베는 등 백제 부흥군을 더욱 압박해왔다. 결국 부흥군은 피성을 떠나 주류성으로 돌아갔고, 왕은 이미 백제를 평정하였다며 유사에 명해 큰 잔치를 베풀고 술과 음식을 내려 주게 한다. 한편 여름 4월, 당은 신라를 계림대도독부(雞林大都督府)로 삼고, 문무왕을 계림주대도독(雞林州大都督)으로 삼았다. 6월, 백제 부흥군 내의 내분으로 복신이 풍왕에게 살해당한 것을 계기로 신라는 곧장 백제 부흥군을 쳐서 진압하려 했고, 당에서도 웅진도독부의 장군 유인궤(劉仁軌)의 요청에 따라 우위위장군(右威衛將軍) 손인사(孫仁師)가 40만 군사를 보냈고, 유인궤와 별장(別將) 두상(杜爽), 새로 백제왕으로 임명된 부여융 등의 수군은 덕물도(德物島)를 경유해 수로로 곧장 웅진부성(熊津府城)으로 나아갔다. 문무왕 역시 김유신과 김인문·김천존, 화랑 죽지랑을 위시한 28명(또는 30명)의 장군을 데리고 당의 손인사·유인원과 군사를 합쳐 8월 13일에 두솔성(豆率城)을 함락했다. 문무왕은 왜인들에게 훈계하고 본국으로 돌려보냈다. 28일에는 백강 어귀에서 당의 수군과 백제·왜의 선단이 충돌한 네 번의 싸움 모두 백제·왜 선단의 궤멸로 끝났고, 백제의 풍왕은 몇 사람과 함께 배 한 척에 의지해서 고구려로 망명해 버렸다(백강구 전투). 요충지인 가림성을 제치고 먼저 주류성을 치기로 결정한 나·당 연합군 지휘부는 9월 7일에 마침내 주류성을 함락시켰다. 웅진도독부의 당군에게 의복을 공급해주고 겨울 11월 20일에 서라벌로 돌아와, 문무왕은 여러 장수들에게 논공행상을 행했다. 앞서 당은 신라와의 합의 없이 일방적으로 신라를 계림대도독부로 삼고 문무왕을 도독에 임명한 뒤, 임존성을 함락시키지 못하고 돌아오려는 문무왕을 향해 "평정을 마친 뒤 함께 모여 맹약을 맺으라"던 고종의 칙령을 들며 두 나라 사이의 맹약을 제의했다. 신라는 임존성이 함락되지도 않은 상황에서 너무 이르다는 이유로 거절했지만, 결국 문무왕 4년(664년) 2월에 각간 김인문, 이찬 천존(天存)을 보내어 당의 칙사 유인원(劉仁願)과 새로 웅진도독이 된 옛 백제의 왕자 부여융과 웅진에서 동맹을 맺었다. 백제 부흥군은 문무왕 4년(664년) 3월에 사비산성(泗沘山城)에서 최후의 저항을 시도했지만 그마저도 실패로 돌아가면서 백제 부흥은 사실상 종말을 고한다.
백제를 멸망시킨 문무왕이 처음으로 고구려 공략에 나선 것은 문무왕 4년(664년) 가을 7월, 왕제 김인문과 김품일, 한산주(漢山州) 도독(都督) 김군관, 수약주(首若州) 총관(摠管) 김문영 등에게 일선(一善)·한산 두 주의 군사를 이끌고 웅진도독부 소속 당병과 함께 돌사성(突沙城)을 쳐서 멸하면서부터였다.
5년(665년) 가을 8월에 왕은 당의 칙사 유인원, 웅진도독 부여융과 함께 웅진 취리산에서 모여 다시 맹약을 맺었다. 백마를 잡아 그 피를 마시고 “서로의 경계를 넘어 침범하지 않는다”는 내용을 골자로 한 맹약의 글은 유인궤가 지은 것으로 제물들은 취리산 제단의 북쪽에 묻고, 맹약문은 신라의 종묘에 보관되었다. 또한 그 회맹한 지점을 백제와 신라의 경계로 삼고 푯말을 세워 백제와 신라 양국의 국경으로 삼았다. 이는 전쟁이 끝난 뒤 평양 이남의 땅은 신라에 귀속된다는 당초의 약속을 어긴 당의 일방적이고 독단적인 처사였다. 같은 달, 왕자 정명(훗날의 신문왕)을 태자로 책봉하였다. 겨울에는 일선·거열 두 주의 백성들을 시켜 군수물자를 하서주로 운반하게 하면서 고구려와의 전쟁을 준비했다.
6년(666년) 4월에는 대신 김천존의 아들인 나마 한림과 김유신의 아들인 나마 삼광(三光)을 모두 당에 들어가 숙위하게 하였으며, 고구려를 없애고자 당에 군사를 요청하였다. 12월에부터 당은 이적(李勣)을 요동도행군대총관(遼東道行軍大摠管)으로 삼고 사열소상백(司列少常伯) 안륙현(安陸縣) 사람인 학처준(郝處俊)을 부장으로 삼아 고구려와 전쟁을 벌였는데, 이때 고구려는 실권자였던 대막리지 연개소문의 죽음에 이어 그의 아들들 사이에 형제 다툼이 벌어졌고, 이는 마침내 연개소문의 장남 남생이 아우 남건과 남산에게 쫓겨 국내성 등의 성을 거느리고 당에 항복해버리면서 고구려 지배층의 내분으로까지 번지게 되었다. 이 와중에 연개소문의 아우 정토가 24명의 부하와 12성 763호 3,543명을 거느리고 항복해오자, 정토와 그의 부하들에게 옷과 양식, 집을 주어 서울 및 주·부에 안주시키고, 온전한 여덟 성에는 군사를 보내 지키게 한다.
7년(667년) 7월에 3일 동안 큰 잔치를 베풀었고, 당에서는 신라의 장군 지경(智鏡)과 개원(愷元)을 장군으로 발탁하고 대아찬 일원(日原)은 당의 운휘장군(雲麾將軍)으로 임명되었는데, 문무왕은 지경과 개원에게 각각 파진찬과 대아찬의 관등을 주고, 일원을 운휘장군으로 명한다는 고종의 칙명은 왕궁 뜰에서 받도록 명하였다. 또한, 같은 달 고종은 유인원과 신라의 김인태(金仁泰)에게 명하여 비열성(卑列城)의 길을 따라, 신라 병사를 징발해 다곡(多谷)·해곡(海谷) 두 길을 따라 평양으로 모이도록 하였다. 가을 8월에 문무왕은 대각간 김유신 등 30명의 장군을 거느리고 서라벌을 출발해 9월에는 한성정(漢城停)에 도착해 이적(李勣)과 합류하기 위해 기다렸다. 이때 신라군은 당군을 배제한 단독 작전수행 대신 정탐을 세 번이나 보내면서 배를 계속 띄워 당군의 동정을 살폈고, 당군이 아직 평양에 도달하지 않았음을 알고 먼저 고구려의 칠중성(七重城)을 쳐서 먼저 고구려로 갈 길을 뚫기로 했다. 하지만 칠중성을 치기 전, 겨울 10월 2일에 평양성 북쪽 2백리 지점에 도착한 이적은 신라측 이동혜(尒同兮) 촌주(村主) 대나마 강심(江深)에게 부쳐, 한성에 주둔하고 있던 신라군에게 “칠중성을 공격할 필요없이 곧바로 평양으로 와서 당군에 군량을 공급하라”는 편지를 보내왔다. 이에 신라군은 칠중성 공격을 포기하고 수곡성(水谷城)으로 향했지만, 11월 11일에 장새(獐塞)에 이르렀을 때 이적은 어느새 돌아가버렸고, 신라군도 그냥 돌아왔다. 12월에 당은 다시 웅진도독부의 유진장군(留鎭將軍) 유인원을 보내어 고구려 정벌을 돕게 하면서 문무왕에게 대장군의 정절(旌節)을 주었다.
8년(668년) 2월 이적 등이 이끄는 당군이 고구려의 부여성을 비롯한 40여 성을 함락시켰다. 이에 남건이 5만의 군사로 그 땅을 수복하려 애썼지만 설하수(薛賀水)에서 3만 명이 죽는 대패를 당하고 퇴각했다. 3월에 신라는 북방의 요충지였던 비열홀(比列忽, 비열성)에 주를 설치하고 파진찬 용문(龍文)을 총관으로 삼았다. 6월 12일에 당의 우상(右相) 유인궤가 당 고종의 칙명을 받들고 신라의 숙위 사찬 김삼광과 함께 당항진(党項津)에 도착하자 왕은 각간 인문을 보내 성대한 예식으로 맞이하게 했다. 이에 유인궤는 약속을 마치고 신라의 선발군을 이끌고 고구려 땅인 천강(泉岡)으로 향하고, 문무왕 역시 6월 21일에 한성주에서 후발부대를 사열했다. 이때 신라군의 주요 장수들의 명단은 다음과 같다.
이때 대당대총관으로 임명된 대각간 김유신은 풍병(風病) 때문에 전투에 직접 참가하지는 못하고 수도 서라벌에 남았고, 일찍이 백제를 치는데 선두로 나섰던 여러 장수들이 모두 지도부의 요직을 맡아 고구려 공격에 나서게 되었다. 임명된 관직으로 추정한 진격루트는 한성주(한산주)와 비열주(비열홀주) 그리고 하서주(하슬라주) 세 곳으로, 수도 서라벌에서 조직된 군사들은 닷새 후 북쪽을 향해 출발했다. 6월 22일에 유인원이 신라의 귀간(貴干) 미힐(未肹)을 보내어 고구려의 대곡성(大谷城)과 한성(漢城) 등 2군 12성이 항복해왔음을 알렸고, 신라군 장수인 인문·천존·도유 등은 일선주 등 일곱 군과 한성주의 병마를 이끌고 당의 군영으로 나아갔다. 6월 27일에는 드디어 문무왕 자신이 서라벌을 출발했고, 이틀 뒤에는 여러 도의 총관들이 일제히 출발했다. 당군 총사령관 이적을 만난 신라의 김인문은 고구려의 평양 북쪽 20리 되는 지점인 영류산(嬰留山) 아래까지 진군하였다.
7월 16일에 한성에 도착한 왕은 여러 총관들에게 당군과 회합할 것을 명했다. 한편 비열성주행군총관 김문영 등은 사천(蛇川)의 벌판에서 고구려의 태대막리지 남건이 거느리고 온 군사와 충돌했는데, 함께 있던 당의 번병들이 제대로 싸우지도 못하는 와중에 김문영의 신라군은 앞으로 나서서 고구려군과 맞서 크게 이겼고, 신라군이 이기는 것을 보고 난 다음에야 당병은 겨우 고구려군과 싸웠다고 한다. 이 사천에서의 싸움에서 공을 세운 대당소감(大幢小監) 본득(本得)은 훗날 문무왕에 의해 일길찬 관등과 조 1천 섬을 은상으로 받았고, 전사한 한산주소감(漢山州小監) 김상경(金相京)도 그와 준하는 상이 내려졌다. 다만 아술(牙述)의 사찬 구율(求律)은 다리 아래로 내려가 물을 건너가서 적과 싸워 크게 이겼음에도, 군령을 받지 않고 스스로 위험한 곳에 들어갔다 하여 포상에서는 제외되었다.
9월 21일에 신라군은 당군과 합류해 평양을 에워쌌다. 고구려의 보장왕은 먼저 연남산(淵男産) 등 98명의 수령(首領)을 이끌고 백기를 들고 항복했고, 신라군의 대당총관 김인문이 보장왕을 이적 앞에 데려가 꿇어앉히고 그 죄를 세었다. 남건은 성문을 닫고 항거하면서, 병력을 내보내 싸웠으나 모두 패하였다. 9월 26일 승려 신성(信誠)이 성문을 여니 신라의 5백 기병을 필두로 한 군사들이 평양으로 들어가 평양을 함락시켰다. 이때 평양성 함락전에서의 신라군의 활약은 기록에 잘 드러나 있지 않지만, 평양을 함락하고 한 달이 지난 뒤에 문무왕이 남한주에서 행한 논공행상 과정이 남아있다. 평양성 외곽에서는 흑악령(黑嶽令) 선극(宣極)이 평양성 대문에서의 싸움에 세운 공으로 일길찬의 관등과 조(租) 1천 섬을 받았고, 군사(軍師)인 남한산(南漢山)의 북거(北渠)는 평양성 북문에서 전공을 세워 술간(述干) 관등과 벼 1천 섬, 부양(斧壤)의 구기(仇杞)는 평양 남쪽 다리 위에서 높은 공을 세워 마찬가지로 술간 관등과 벼 700섬을 받았다. 평양성 내부에서는 임시[假] 군사(軍師)인 비열홀의 세활(世活)이 평양의 소성(小城)에서 전공을 세워 고간(高干) 관등과 벼 500섬을 받았고, 서당당주(誓幢幢主) 김둔산(金遁山)은 평양 군영에서의 전공이 으뜸이라 하여 사찬 관등과 조 700섬을 받았으며, 한산주 소감 박경한(朴京漢)은 평양성 안에서 고구려의 군주(軍主) 술탈(述脫)을 죽인 공으로 일길찬 관등과 조 1천 섬을 받았다.
평양이 함락된 뒤 이적은 보장왕과 왕자 복남(福男)·덕남(德男) 그리고 대신 등 20여만 명을 이끌고 돌아갔고, 각간 김인문과 대아찬 조주(助州)가 이적을 따라 인태·의복·수세·천광·흥원 등과 함께 당으로 들어갔다. 문무왕은 한성을 출발해 평양으로 가던 중, 힐차양(肹次壤)에 이르러 당의 여러 장수가 이미 돌아갔다는 말을 듣고 한성으로 되돌아왔다. 신라 측은 긴 전쟁이 끝나고 자신들에게 약속된 은택을 얻을 것이고 공을 세운 장군들도 포상을 받게 될 것이라 기대하고 당나라에 들어갔지만, 당의 총사령관 이적은 “지금 신라는 아무도 공이 없다”며 싸늘한 태도를 보였고, 이적의 태도가 신라 군영에 전해지면서 신라군들은 동요하기 시작했다. 신라로서는 그들의 국가적인 힘을 기울여 당군을 도와 주변의 적들을 쓰러뜨렸는데, 막상 신라에게 돌아온 보상은 아무것도 없었던 것이다. 오히려 당은 백제와 고구려에 이어 신라까지 집어삼키려 하고 있었다.
남한주(南漢州)로 돌아온 문무왕은 10월 22일에 논공행상을 벌여 서라벌에 남아있던 김유신에게 태대서발한(太大舒發翰)의 직위와 식읍 500호, 궤장을 하사하고 그의 모든 보좌관들에게도 각각 위계 한 등급씩을 올려 주었다. 또한 인문을 대각간, 다른 이찬과 장군들을 모두 각간으로 삼고 소판 이하에게는 모두 관위 1등급씩 더해주었다. 10월 25일에 왕은 욕돌역(褥突驛)에 이르러 국원사신(國原仕臣) 용장(龍長) 대아찬에게 사적으로 대접받았다. 전쟁에서 포로로 잡은 고구려 사람 7천 명을 포로로 거느리고 11월 5일에 서라벌로 들어온 왕은 다음날 문무 관료들과 함께 선조묘에 전쟁이 끝났음을 고하고, 11월 18일에는 전사자들의 신분에 맞춰 부의(賻儀)를 내렸다.
9년(669년) 5월 천정군(泉井郡)·비열홀군(比列忽郡)·각련군(各連郡) 세 군의 백성이 굶주렸으므로 창고를 열어 진휼하였다. 같은 달, 급찬 기진산(祇珍山) 등을 당에 보내어 자석(紫石) 두 상자를 바쳤다. 또한 각간 김흠순과 파진찬 김양도(金良圖)를 당에 보내 사죄하게 하였다. 겨울에는 당의 사신이 도착하여 신라의 쇠뇌 기술자인 사찬 구진천(仇珍川)을 당에 데려갔다. 이는 당시 ‘천보노(千歩弩)’라고까지 불리며 쏘면 1천 보를 나간다는 소문이 퍼져 있던 신라의 쇠뇌 제작 기술을 확보하기 위해서였다.
같은 해 문무왕은 말을 기르는 목장 174곳을 소내(所內)에 22곳, 관청에 10곳을 속하게 하고 김유신을 비롯한 고위 진골 대신들과 여러 관료들에게 나누어 주었다. 또한 백제의 여자를 아내로 삼은 한성도독 박도유가 웅진도독부와 내통해 신라의 병기를 훔쳐다 한 주(州)의 땅을 습격하는 난을 일으키려다 계획이 발각되어, 도유는 처형당했다.
10년(670년) 봄 정월, 당 고종은 신라의 사신 김흠순에게는 귀국을 허락하였지만 김양도는 억류하여 감옥에 가두었는데 마침내 감옥에서 죽었다. 이것은 신라가 백제의 땅과 유민을 취한 데 대한 보복 조치였다. 3월, 사찬 설오유(薛烏儒)가 고구려 태대형 고연무와 함께 각각 병사 1만 씩을 거느리고 압록강을 건너서 옥골(屋骨)에 이르렀다. 4월 4일 개돈양(皆敦壤)에 주둔하고 있던 말갈족과의 전투에서 승리를 거둔다. 이후 당나라가 병력을 지속적으로 충원하자 백성(白城)으로 후퇴했다. 6월에는 고구려 대형(大兄) 검모잠이 당나라 관리와 승려 법안(法安) 등을 죽이고 신라로 향하였다. 검모잠은 안승(보덕왕)을 왕으로 추대하고 신라에 충성을 약속했다. 문무왕은 이들을 금마저(金馬渚)에 머물게 하였다. 7월, 백제의 남은 세력이 배반할까 의심하여 대아찬 김유돈(金儒敦)과 옛 백제의 주부(主簿) 수미(首彌)·장귀(長貴)를 웅진도독부로 보내, 신뢰 차원에서 양측간의 인질 교환을 제의했다. 웅진도독부는 이에 응하면서도 한편으로는 군사와 말을 모아 신라군에 대한 야간 기습을 수차례 반복했다. 한편 김흠순 등이 귀국해 당에서 가져온 지도를 바쳤는데, 그 지도는 신라가 차지하게 되어있던 옛 백제령을 모두 백제(웅진도독부)에 돌려주도록 하는 것이었다. 신라는 이를 빌미로 앞서 웅진도독부에서 파견한 백제의 사마(司馬) 예군(禰軍)을 첩자의 혐의를 물어 억류하고, 군사를 일으켜 웅진도독부를 쳐서 땅을 빼앗았다. 이때 신라 장수들 중 싸우지 않고 퇴각한 이들도 있었는데, 이들에 대해서는 특별히 처벌 대신 면직으로 매듭지었다. 같은 달, 사찬 수미산(須彌山)을 보내 안승을 고구려 왕으로 ‘책봉’했다. 12월, 한성주(漢城州) 총관(摠管) 수세(藪世)가 반란을 도모하려 하자, 대아찬(大阿湌) 진주(眞珠)를 보내 목을 베었다.
11년(671년) 군사를 일으켜 웅진도독부를 침공하였다. 당의 지휘를 받던 말갈병이 설구성(舌口城)을 포위했다가 물러가는 것을 후방에서 쳐서 3백 명을 죽이고, 당군이 백제를 구원하러 올 것에 대비해 대아찬 진공(眞功) 등을 시켜 수군으로 옹포(甕浦)를 지키게 했다. 또한 6월에 장군인 화랑 죽지 등을 시켜 군사를 거느리고 백제 가림성(加林城)의 벼를 짓밟게 했으며, 당병과 석성(石城)에서 싸워 5,300명을 죽이고 백제 장군 두 명과 당의 과의(果毅) 여섯 명을 사로잡는 전과를 거두었다. 7월에 당은 행군총관 설인귀를 신라에 파견했는데, 왕은 사신을 맞아 위로하는 대신 강가의 풀이 우거진 낮은 언덕에 군사를 숨기고 강 어귀에는 무기를 감춰둔 채, 수풀 사이를 오가며 틈을 노려 기습할 준비를 하고 있었다. 설인귀는 26일에 당이 신라를 도와서 백제와 고구려를 멸해주었는데 신라가 그 은혜를 잊고, 고구려를 도와 당을 치고 있다며 항의하는 내용과 함께 마음만 먹으면 당이 신라를 집어삼킬 수도 있음을 은근히 협박하는 내용의 편지를 적어 법사 임윤(琳潤)을 시켜 왕에게 보냈다. 문무왕은 설인귀에게 신라가 선왕 때로부터 당에 협조하고 여러 번 신라의 백성이 헐벗고 굶주리는 지경이 되는 것도 마다하지 않고 국고를 내어 번번이 당군을 지원했던 사실과 당이 처음 신라와 했던 약속들을 어기고 신라가 점령하여 지배하던 땅을 무단으로 거둬들인 일을 비난하며 자신의 입장을 표명하였다. 같은 날, 백제 수도였던 사비성에 소부리주(所夫里州)를 설치하고 아찬 진왕(眞王)을 도독으로 삼았다. 10월 6일 당의 조운선(漕運船) 70여 척을 공격하여 낭장(郞將) 겸이대후(鉗耳大侯)와 병사 100여 명을 사로잡는 등 큰 전과를 올렸다.
12년(672년) 당나라는 대군을 동원해 신라에 대한 침략을 개시했다. 이에 맞서 신라는 봄 정월에 백제 고성성(古省城)을 쳐서 이기고, 2월에는 다시 백제의 가림성 공격을 시도했다. 7월, 당나라 장수 고간(高侃)의 한병(漢兵) 1만, 말갈족 출신의 이근행이 거느린 말갈병 3만이 함께 평양에 이르러 여덟 곳에 군영(軍營)을 설치하고 머물렀다. 이들은 8월부터 한시성(韓始城)과 마읍성(馬邑城)을 쳐서 이기고 백수성(白水城) 5백 보 거리까지 전진해 주둔하는 등 신라 땅을 침식해왔다. 신라는 고구려 부흥군과 연합해 이들을 쳐서 이기고, 추격하는 당병을 석문(石門) 벌판까지 뒤쫓아가 싸웠지만, 군 내부에서의 논공행상 및 전략에 대한 견해차로 분열된 사이에 당병의 반격을 받아 크게 패하고 대아찬 효천(曉川), 사찬 의문(義文)·산세(山世), 아찬 능신(能申)·두선(豆善), 일길찬 안나함(安那含)·양신(良臣) 등이 죽었다. 태대각간 김유신의 아들인 원술도 여기에 참전했다가 목숨을 건져 돌아왔는데, 아버지 유신은 자신의 아들을 군법으로 처형해야 한다며 왕에게 아뢰었으나 왕은 듣지 않았다. 한편 각자 맡은 곳을 지키며 방어전으로 전략을 변경하자는 유신의 진언에 따라, 한산주에 둘레 4,360보 되는 주장성(晝長城)을 쌓는 등 방어진지를 구축했다. 9월에는 앞서 신라 땅에 억류하고 있던 웅진도독부 소속의 백제인 관원들과 앞서의 전투에서 사로잡은 포로들을 당으로 돌려보내면서 왕이 직접 표문과 많은 물품을 바치는 등 당에 대해 유화책을 폈다.
13년(673년) 2월부터 9월까지, 문무왕은 당의 침략에 대한 대응으로 서형산성(西兄山城)과 사열산성(沙熱山城)을 비롯해, 국원성(國原城), 북형산성(北兄山城), 소문성(召文城), 이산성(耳山城), 수약주(首若州)의 주양성(走壤城), 달함군의 주잠성(主岑城), 거열주(居烈州)의 만흥사산성(萬興寺山城), 삽량주(歃良州)의 골쟁현성(骨爭峴城) 등 여러 성을 쌓게 하고, 대아찬(大阿飡) 철천(徹川) 등을 보내 병선 100척을 거느리고 서해를 지키게 하였다. 한편 이 사이에 국가의 원로이자 재상이었던 태대각간 김유신이 죽고, 아찬 대토(大吐)가 모반하여 당에 붙으려다 발각되어 처형당하는 등의 사건도 일어났다. 거듭되는 전쟁에서 신라는 말갈·거란의 병사까지 끌어들인 당군과 맞서 아홉 번의 전투를 통해 2천 명을 죽이고, 호로하(瓠瀘河)와 왕봉하(王逢河)에서도 당군을 상대로 큰 전과를 올렸다. 겨울에 당병은 고구려의 우잠성(牛岑城)을 쳐서 함락시키고, 거란·말갈의 병사들은 대양성(大楊城)과 동자성(童子城)을 쳐서 멸했다. 한편 신라는 주(州)와 군(郡)에 처음으로 외사정(外司正)을 두고, 백제 멸망 뒤 무열왕에 의해 폐지되었던 수병제(戍兵制)를 부활시키는 등 지방에 대한 통제를 강화해나갔다.
14년(674년) 1월 당에서 숙위하다 귀국한 대나마 덕복(德福)이 가져온 신력(新曆)을 반포했다. 같은 달 문무왕이 고구려 유민을 받아들이고 백제령을 지배하에 두는 것을 보고 화가 난 고종은 조서(詔書)로 문무왕의 관작을 깎아 없애려 하였다. 왕의 동생으로 당에 머무르고 있던 우효위원외장군(右驍衛員外大將軍) 임해군공(臨海郡公) 김인문을 신라왕에 봉하면서, 그를 귀국시키는 편에 많은 군사를 딸려보내 대규모로 신라를 치려 했다. 문무왕은 8월에 서형산(西兄山) 아래에서 대규모 사열식을 벌이고, 9월에는 영묘사(靈廟寺) 앞길에서 다시 대규모 사열식과 함께 아찬 설수진(薛秀眞)의 육진병법(六陣兵法)을 관람하는 등의 군사훈련을 실시한다. 그리고 이 달에 고구려왕 안승을 다시 보덕왕으로 봉했다.
15년(675년) 봄 정월에 구리로 각 관청 및 주·군의 인장(印章)을 만들어 지급했다. 2월에 당의 장수 유인궤가 칠중성(七重城)에서 우리 군사를 깨뜨린 뒤 돌아가고, 이근행이 안동진무대사(安東鎭撫大使)로 임명되었다. 문무왕은 다시 당에 사신을 보내 조공하며 유감을 표명했고, 당은 이에 대한 화답으로 앞서 깎아 없앴던 문무왕의 관작을 회복시켰다. 이때에는 대부분의 백제령이 신라의 지배하에 들어가게 되고, 고구려 남쪽 경계에 이르기까지 신라의 주와 군이 설치되어 있었다. 이에 문무왕은 당이 쳐들어올 것에 대비해 아홉 부대의 병사를 내보내 막게 하였다. 과연 가을 9월, 당은 설인귀를 대장으로 하는 군사를 신라에 보내 천성(泉城)을 치게 했는데, 이때 당에 숙위하고 있던 풍훈(風訓)이 향도(鄕導)로서 당을 도왔다. 그러나 신라의 장군 문훈(文訓) 등의 선전으로 당병 1,400명을 죽이고 그 병선 40척을 빼앗았으며, 설인귀가 포위를 풀고 도망치면서 내버리고 간 전마 1천 필까지 신라의 손에 들어왔다. 9월 29일에는 이근행이 20만 군사를 이끌고 매초성(買肖城)에 진을 쳤다. 신라군이 이를 공격하자 당군은 말 30,380필과 무수한 병기를 남겨 놓고 도망갔다. 나아가 안북하(安北河)를 따라 관(關)과 성을 설치하고 또 철관성(鐵關城)을 쌓았다. 《삼국사기》에 따르면 이 해에 신라와 당이 벌인 크고 작은 싸움이 18번인데, 모두 신라가 이겨서 당병 6,047명을 죽이고 말 200필을 얻었다고 한다.
16년(676년) 7월 당군이 도림성(道臨城)을 공격해 현령(縣令) 거시지(居尸知)를 죽였다. 11월에 사찬 시득(施得)이 수군을 거느리고 설인귀와 소부리주 기벌포(伎伐浦)에서 싸웠다. 이 싸움에서 신라는 패했지만, 다시 나아가 22회에 걸친 크고 작은 싸움에서 모두 승리하여 당군 4천여 명을 목베었다. 이후 당은 백제령 안에 있던 웅진도독부를 요동의 건안성(建安城)으로 옮기고, 평양에 두었던 안동도호부도 요동성(遼東城)을 거쳐 신성(新城)으로 옮기는 등 한반도에서 자국의 병사들을 철수시켰다.
18년(678년) 1월 북원소경(北原小京)을 설치하고 대아찬(大阿湌) 오기(吳起)에게 지키게 하였다.
20년(680년) 5월 가야군(加耶郡)에 금관소경(金官小京)을 설치하였다.
681년 7월 1일에 56세로 서거하였다. 유조(遺詔)에 따라 시신은 화장하였고, 경주 감은사(感恩寺) 동쪽 바다 대왕암(大王岩) 위에 장사하였다. 문무왕의 유조는 다음과 같다.
사후 세속에서는 왕이 용이 되어 나라를 지킨다는 이야기가 퍼져 무속신의 한 사람으로 숭배되었다.