Slaget startet den 25. juni 1862 med et angrep fra unionshæren i det mindre slaget ved Oak Grove, men McClellan mistet raskt initiativet da Lee satte i gang en serie av angrep i slaget ved Beaver Dam Creek (Mechanicsville) den 26. juni, slaget ved Gaines' Mill den 27. juni, de mindre aksjonene ved Garnett's og Golding's Farm den 27. og 28. juni og angrepet på Unionens bakre vaktstyrker i Savage's Station den 29. juni. McClellans Army of the Potomac fortsatte sin tilbaketrekning mot sikkerheten ved Harrison's Landing ved James-elva. Lees siste mulighet til å avskjære unionshæren var i slaget ved Glendale den 30. juni, men dårlig utførte ordrer gjorde at fienden klarte å unnslippe til en sterk defensiv stilling på Malvern Hill. I slaget ved Malvern Hill den 1. juli satte Lee forgjeves i gang frontalangrep og ble påført store tapstall i møtet med det sterke forsvaret av infanteri og artilleri.