1597년(선조 30) 정유재란 때 조선과 명나라 연합군과 일본군이 울산 도산성을 중심으로 2차례에 걸쳐 벌인 전투. 1597년 12월 22일부터 1598년 1월 4일까지가 첫번째 전투이고, 1598년 9월 22일부터 25일까지가 두 번째 전투이다.
1596년에 일본과 맺은 화의(和議)가 깨지고, 1597년 1월 15일 일본군이 조선을 재침략한 가운데 그 해 5월 명나라 군대에게 격파되어 북상이 차단되었다. 또한 9월 16일에는 명량에서 이순신 지휘 아래에 있는 조선 수군에게 패하여, 일본 수군은 서쪽으로 나아갈 수도 없게 되었다
그러자 10월부터 일본군은 남해안에 모여 주둔하였는데,
가토 기요마사[加藤淸正]가 이끄는 1만 여 명의 군대는 울산 도산에 성을 쌓고 주둔하고 있었다. 쳐들어가 빼앗기 위해 그 해 12월 21일 명나라의 경리(經里)
양호와 제독
마귀는 4만 군대를 이끌고, 조선 쪽의
권율의 지휘 아래 1만 여 명의 군대와 합류하여 새재〔鳥領〕를 넘어 경상도로 들어 갔다. 그 해 12월 23일 일행은 성곽의 공사를 거의 마친 도산성을 포위해서 공격하여 10여 일의 격전을 벌였다. 그로 인해 왜군은 양식이 떨어지고 우물이 바닥나는 나쁜 조건 속에서 몇 차례의 위기를 넘기며 어렵게 싸우다가, 많은 구원병의 도착으로 성을 지켜냈다.
1597년 1월 4일 조·명 연합군은 싸움을 중지하고 경주 지방으로 철수하였다. 그 곳에서 권율은 경상우수사 이운룡에게 일본군이 서생포 방면에 쌓은 성에 대하여 견제 작전을 하도록 지시하였다.
그리고 조선과 명나라 연합군은 이튿날 경주를 떠나 울산으로 와서 23일부터 도산성을 공격하기 시작하였다. 명나라 군은 마귀가 앞에서 군대를 이끌고, 조선군은
권율이 경상 좌병사
고언백과 경상 우병사
정기룡과 같이 싸움에 참가하였다.
연합군의 형세를 본 일본군은 부산에 구원군을 요청한 뒤 성문을 닫고 밖으로 나오지 않았다. 일본군을 성 밖으로 끌어 내기 위하여 조·명 연합군은 성 안에 불을 질러 공격하려 하였지만, 비가 쏟아지는 바람에 실패하고 말았다. 항복을 요구하는 조·명 연합군에게 가토는 다음 날 3일에 회담을 하자면서 시간을 끌며 구원병을 기다렸다. 다음 날 3일 회담이 지켜지지 않자, 연합군은 4일에 총 공격을 하였는데, 서생포 등에 성을 쌓고 주둔하던 일본의 구원 병력이 나타나는 바람에 도산성을 함락하지 못하고 말았다.
1598년 9월 21일
마귀는 경주에서 해생을 선봉장으로 삼아 군사 2만 4,000명을 이끌고 별장
김응서가 이끈 1만 5,000명의 병력과 합류하여 울산을 향해 출발하였다. 해생이 도산성으로 먼저 가서 공격을 시작하였고 김응서는 동해의 일본군을 격파하여 울산과 부산 사이의 연락선을 끊었다. 22일, 마귀는 주력군 2만 명을 거느리고 도산성을 공격하자, 일본군의 선봉장 가토는 후퇴하는 척하며 마귀 군대를 유인해 치열한 싸움이 벌어졌다. 양쪽 군대 사이에 25일까지 계속된 싸움에서 일본군의 수중에 잡혀 간 조선인 1,100여 명을 구해 내기도 하였다. 그러나 명나라 군대가 사천성에서 패하고 말았다는 소식을 듣고 싸움에 이기고자 하는 의욕을 잃어 경주로 후퇴하였다. 그 때문에 2차 울산 싸움에서도 도산성을 함락하지 못하고 말았다.