McClellan's rear guard at Savage's Station consisted of the V Corps, commanded by Brig. Gen. Edwin V. Sumner (two divisions), the III Corps, under Brig. Gen. Samuel P. Heintzelman (two divisions, and the VI Corps, under Brig. Gen. William B. Franklin (one division). McClellan considered his senior corps commander, Sumner, to be incompetent, so he appointed no one to command the rear guard.
Initial contact between the armies occurred at 9 a.m. on June 29. On the farm and orchards owned by a Mr. Allen, about 2 miles west of Savage's Station, two Georgia regiments from the brigade of Brig. Gen. George T. Anderson fought against two Pennsylvania regiments from Sumner's corps for about two hours before disengaging, suffering 28 casualties to the Pennsylvanians' 119. The highest ranking casualty was Confederate Brig. Gen. Richard Griffith, who was mortally wounded by a Union shell fragment. Magruder, who was alleged to be under the influence of morphine to combat a bout of indigestion, was confused and became concerned that he might be attacked by a superior force. He requested reinforcements from Lee, who ordered two brigades from the division of Brig. Gen. Benjamin Huger to assist, under the condition that they would have to be returned if they were not engaged by 2 p.m.
Meanwhile, Jackson was not advancing as Lee had planned. He was taking time to rebuild bridges over the Chickahominy and he received a garbled order from Lee's chief of staff that made him believe he should stay north of the river and guard the crossings. These failures of the Confederate plan were being matched on the Union side, however. Heintzelman decided on his own that his corps was not needed to defend Savage's Station, Sumner's and Franklin's being sufficient, so he decided to follow the rest of the army without informing his fellow generals.
Magruder was forced to give up the two brigades from Huger's division at 2 p.m. and was faced with the problem of attacking Sumner's 26,600 men with his own 14,000. He hesitated until 5 p.m., when he sent only two and a half brigades forward. Brig. Gen. Joseph B. Kershaw commanded the left flank, Brig. Gen. Paul J. Semmes the center, and Col. William Barksdale (Griffith's Brigade) the right. Franklin and Brig. Gen. John Sedgwick were on a reconnaissance to the west of Savage's Station when they saw Kershaw's brigade approaching. Their immediate assumption was that these were men from Heintzelman's corps, but they soon realized their mistake. This was the first indication of Heintzelman's unannounced departure and Sumner, for one, was particularly outraged, refusing to speak to Heintzelman the following day. Union artillery opened fire and pickets were sent forward to meet the assault.
Magruder's attack was accompanied by the first armored railroad battery to be used in combat. Earlier in June, General Lee had hoped to counter the approach of McClellan's siege artillery by rail by using his own weapon: a 32-pounder Brooke naval rifle, shielded by a sloping casemate of railroad iron, nicknamed the "Land Merrimack." It was pushed by a locomotive at about the speed of the marching infantry. However, even with this impressive weapon, which outgunned anything the Federal artillerists possessed, the results of Magruder's decision to send only part of his smaller force against a much larger enemy were predictable.
The first Union unit to engage was one of Sedgwick's brigades, Philadelphians led by Brig. Gen. William W. Burns, but his defensive line proved inadequate to cover the two brigade front of Kershaw and Semmes. Sumner managed this part of the battle erratically, selecting regiments for combat almost at random. He sent in two of Burns's regiments, and then the 1st Minnesota Infantry from another brigade in Sedgwick's division, and finally one regiment each from two different brigades in Brig. Gen. Israel B. Richardson's division. By the time all of these units reached the front, the two sides were at rough parity—two brigades each. Although Magruder had been conservative about his attack, Sumner was even more so. Of the 26 regiments he had in his corps, only 10 were engaged at Savage's Station.
The fighting turned into a bloody stalemate as darkness fell and strong thunderstorms began to move in. The Land Merrimack bombarded the Union front, with some of its shells reaching as far to the rear as the field hospital. The final actions of the evening were by the Vermont Brigade, commanded by Colonel William T. H. Brooks, of Brig. Gen. William F. "Baldy" Smith's division. Attempting to hold the flank south of the Williamsburg Road, the Vermonters charged into the woods and were met with murderous fire, suffering more casualties of any brigade on the field that day. The brigade as a whole took 439 casualties; the 5th Vermont regiment, commanded by Lt. Col. Lewis A. Grant, lost nearly half of its men, 209 of 428.
The battle was a stalemate at the cost of about 1,500 casualties on both sides, plus 2,500 previously wounded Union soldiers who were left to be captured when their field hospital was evacuated. Stonewall Jackson eventually crossed the river by about 2:30 a.m. on June 30, but it was too late to crush the Union Army, as Lee had hoped. Most of the Army of the Potomac crossed White Oak Swamp Creek unmolested by noon on June 30. General Lee reprimanded Magruder in a dispatch: "I regret much that you have made so little progress today in the pursuit of the enemy. In order to reap the fruits of our victory that pursuit should be most vigorous. ... We must lose no more time or he will escape us entirely." However, the fault for the lost opportunity must be shared equally with the poor staff work at Lee's own headquarters and a less than aggressive performance by Jackson. The Seven Days continued with the much larger Battle of Glendale and the Battle of White Oak Swamp on June 30.