
임진왜란 발발 7년 후 1598년 12월. 왜군 수장 도요토미 히데요시(풍신수실)는 자신의 처와 아들 그리고 도쿠가와 이에야스에게 조선에서 철군을 명하는 유언을 남기고 죽음을 맞이한다.
왜군의 선봉장 고니시(이무생)는 도요토미 히데요시의 죽음으로 인해 발생한 권력 공백 상태인 일본으로 돌아가려 한다. 그러나 순천 왜성을 포위하고 있는 조선과 명나라 연합군 함대를 뚫을 방법을 찾지 못하고 있다.
조선의 이순신 장군은 조명연합함대를 꾸리고 노량 앞바다에서 왜군의 퇴각로를 틀어막고 있다. 끝까지 쫓아 왜적을 섬멸하려는 이순신의 다짐을 이해 못하는 명나라 수군도독 진린(정재영) 사이에서 팽팽한 의견충돌이 발생한다.

왜군 수장 시마즈(백윤식)는 순천 왜성에 퇴로 막혀 있는 아군을 돕기 위해 노량으로 500척의 함대를 이동시킨다. 시마즈의 전략을 알아챈 이순신 장군은 인근 해역 및 일본 열도까지 세작을 투입시켜 주변 상황을 완전히 파악하고, 시마즈의 공격에 작전을 세운다.
한편, 이순신 장군은 조선수군 후방에 있는 고니시가 시마즈와 함께 협공할 경우 왜군의 섬멸을 장담할 수 없었다. 이순신 장군은 고니시와 시마즈가 만나는 것을 지연시키기 위히여 준사에게 수백 척의 어선을 함선으로 위장시켰지만, 불빛이 너무 밝은 것을 이상하게 생각한 고니시는 함정을 알아채고 바로 시마즈와의 협공을 위해 출정한다.
임진왜란 기간 중 가장 치열한 마지막 전쟁의 서막이 시작된다.

조선 수군의 무차별 공격에 아랑곳없이 시마즈 함대 선봉장은 조선 수군을 향해 진격한다. 이순신 장군은 우수사 이운룡(박훈)에게 시마즈 선봉대와의 전투를 명한다. 우수사 이운룡은 충파를 이용해 적군의 배 진격을 저지하는 동시에 화염항아리를 적군의 배에 투척하여 화공을 준비한다. 바람을 등지고 있던 조선 수군은 불화살을 날려 시마즈 선봉 함대를 불바다로 만들었다. 이어서 거북선과 소신기전, 중신기전을 사용하여 왜적의 본진까지 모두를 섭멸하려 했으나, 이를 알아챈 시마즈는 남아있는 함대를 보전하기 위해 조선 수군으로부터 빼앗은 대포로 사용하여 자신의 선봉 함대를 수장시킨다.
시마즈는 고니시와의 협공을 준비하기 위해 노량해협 좌측으로 모든 함대를 이동시키지만 조선 지리에 약한 시마즈는 관음포로 들어가게 되고 함선은 위험에 처하게 된다.

시마즈 함대가 관음포에서 빠져나오기 위해 명나라 수군에 대포를 발사하며 다가오자 36계 줄행랑을 치는 명나라 수군을 끝까지 쫓아간다. 시마즈는 기세를 몰아 명나라 수군을 모두 없애고저 뒤를 쫓지만 전략적으로 우위에 있었던 이순신 장군은 명나라 수군을 쫓고 있던 시마즈 함대의 허리를 공격한다. 둘로 나누어진 시마즈 함대의 위와 아래를 모두 상대하고 있는 이순신 장군을 보던 명나라 수군도독 진린은 본격적으로 전쟁에 참여한다. 명나라 수군 부총령 등자룡(이준호)은 시마즈와 일전에서 패하고, 명나라 수군도독 진린은 위험에 처하게 되지만 준사의 도움으로 목숨을 건진다.
동이 트는 아침 해를 보던 이순신 장군은 아군의 사기를 북돋기 위해 북을 친다. 그 모습을 바라보던 조선과 명나라 수군 연합군은 더욱 거세게 일본군을 몰아 부친다. 전투는 막바지에 이르고.. 갑자기 울려퍼지는 한발의 총성 그리고 쓰러진 이순신 장군은 휘하장수들에게 “절대 이렇게 전쟁을 끝내서는 안 된다”며 일본 본토까지 쫓아서라도 왜군 모두를 섬멸해야 한다는 유언을 남기고 숨을 거둔다.