삼국시대 말기(서기 645년), 신라 화랑인 어진랑(신영균)은 백제에 잡혀간 부모의 원수를 갚고 삼국 통일의 대업을 달성하기 위해 화랑 무달과 함께 백제로 떠난다. 어진랑과 무달은 백제로 숨어들어가던 중, 백제 병사들에게 붙잡혀 강제 노역장으로 끌려가나 그곳을 탈출해 백제의 수도에 도착한다. 백제 의자왕은 정사는 돌보지 않고 연일 연회를 베풀고 주색잡기에 여념이 없다. 의자왕의 딸 반달공주(문정숙)는 왕의 타락을 슬퍼하며 궐안사에서 왕의 선정을 위해 기도한다. 어진랑은 산적들에게 봉변을 당할 위기에 처한 공주를 구한다. 이후 어진랑과 무달이 장터에서 광대짓을 하며 궁궐로 숨어들어갈 기회를 엿보던 중 어진랑은 다시 한번 공주를 구하고, 어진랑과 공주는 사랑하게 된다.