기원전 480년 크세르크세스는 헬레스폰토스 해협에 배다리를 놓고 육군과 함대를 함께 이끌고 쳐들어왔다. 헤로도토스는 그 수가 수백만이라고 적었지만, 현대 학자들은 대개 많아야 수십만 명 정도로 본다. 스파르타와 아테네를 중심으로 30여 개 폴리스가 동맹을 맺어 맞섰다.
좁은 길목 테르모필레에서 스파르타 왕 레오니다스가 이끄는 그리스군(약 7,000명)은 사흘 동안 페르시아군을 막았다. 샛길이 알려져 포위당하자 레오니다스는 대부분을 돌려보내고 스파르타 병사 300명과 테스피아이·테바이 병사들과 함께 끝까지 싸우다 전사했다. 페르시아군은 아테네를 점령해 불태웠다.
그러나 아테네의 테미스토클레스는 미리 함대를 키워 두었고, 좁은 살라미스 해협으로 페르시아 함대를 끌어들여 크게 이겼다. 이듬해 기원전 479년 그리스 연합군은 육지의 플라타이아이와 바다 건너 미칼레에서도 이겼다. 페르시아는 다시 그리스 본토를 침공하지 못했다.