‘문영(文永)’으로도 알려져 있다. 660년(무열왕 7) 당나라 군대와 동맹한 신라군이 백제를 공격할 때 독군(督軍)이 되었다.
그런데 신라군이 당나라 군대와의 합류기일을 어김에 따라 당나라 장군 소정방(蘇定方)은 그를 문책하여 베려고 했으나, 대장군 김유신의 적극적인 대응으로 소정방은 그의 죄를 더 이상 거론하지 못했다.
661년(문무왕 1) 7월에 수약주(首若州 : 지금의 강원도 춘천)총관이 되었으며, 668년에는 대아찬(大阿飡)으로서 비열성주 행군총관(卑列城州行軍摠管)에 임명되었고, 그해 사천원(蛇川原)에서 고구려군사를 크게 격파하는 전공을 세웠다. 683년(신문왕 3)에는 이찬(伊飡)이 되어 왕비 간택에도 참여하였고, 694년(효소왕 3)에는 상대등에 임명되었다.