The Battle of Cross Keys was fought as part of Maj. Gen. Thomas J. "Stonewall" Jackson's 1862 Shenandoah Valley Campaign. Together, the battles of Cross Keys and Port Republic were the decisive victories in Jackson's campaign. This forced the Union armies to retreat and leaving Jackson free to reinforce Gen. Robert E. Lee for the Battle of Seven Days Campaign outside Richmond.
On June 6–7, Jackson's army bivouacked north of Port Republic, Maj. Gen. Richard S. Ewell's division along the banks of Mill Creek near Goods Mill, and Brig. Gen. Charles S. Winder's division on the north bank of North River near the bridge. One regiment was left to block the roads at Union Church.
Jackson's headquarters were in Madison Hall at Port Republic. The army trains were parked nearby.
Two Union columns converged on Jackson's position. The army of Maj. Gen. John C. Frémont, about 15,000 strong, moved south on the Valley Pike and reached the vicinity of Harrisonburg on June 6. The division of Brig. Gen. James Shields, about 10,000 strong, advanced south from Front Royal in the Luray (Page) Valley, but was badly strung out because of the muddy Luray Road. At Port Republic, Jackson possessed the last intact bridge on the North River and the fords on the South River by which Frémont and Shields could unite. Jackson determined to check Frémont's advance at Mill Creek, while meeting Shields on the east bank of the North Fork. A Confederate signal station on Massanutten monitored Union progress.
Late in the day on June 7, Frémont's advance guard encountered Jackson's pickets near Cross Keys Tavern. A few shots were fired and the Union cavalry fell back onto their main body, which was approaching. Darkness prevented further developments. Col. Samuel Carroll, at the head of a regiment of cavalry, supported by a battery and a brigade of infantry, was sent ahead by Shields to secure the North River Bridge at Port Republic.
Shortly after dawn on June 8, Carroll scattered the Confederate pickets, forded the South River, and dashed into Port Republic. Jackson and his staff raced down the main street from headquarters and across the bridge, narrowly eluding capture (two members of his staff were captured). Carroll deployed one gun aimed at the bridge and brought up another. Jackson directed the defense, ordering Capt. William Poague's battery to unlimber on the north bank. Captain James McD. Carrington brought up a gun from the vicinity of Madison Hall to rake the Main St. The 37th Virginia Infantry charged across the bridge to drive the Union cavalry out of the town. Carroll retreated in confusion, losing his two guns, before his infantry could come within range. Three Confederate batteries unlimbered on the bluffs east of Port Republic on the north bank of the South Fork and fired on the retreating Federals. Carroll retired several miles north on the Luray Road. Jackson stationed Col. William B. Taliaferro's brigade in Port Republic and positioned the Stonewall Brigade near Bogota with the artillery to prevent any further surprises.
Meanwhile, Frémont, with Cluseret's brigade in the lead, renewed his advance from the vicinity of Harrisonburg. After driving away the Confederate skirmishers, Gustave P. Cluseret reached and deployed his right flank along the Keezletown Road near Union Church. One by one, the Union brigades came into line: Col. Robert C. Schenck on Cluseret's right, Col. Robert H. Milroy on his left, and Col. Julius H. Stahel on the far left, his left flank near Congers Creek. Col. William H. C. Bohlen's and Col. John A. Koltes's brigades were held in reserve near the center of the line. A regiment of Union cavalry moved south on the road to secure the right flank. Batteries were brought to the front.
Ewell deployed his infantry division behind Mill Creek, Col. Isaac R. Trimble's brigade on the right across the Port Republic Road, Arnold Elzey's in the center along the high bluffs. Ewell concentrated his 4 artillery batteries at the center of the line. As Union troops deployed along Keezletown Road, Trimble advanced his brigade a quarter of a mile to Victory Hill and deployed Courtenay's (Latimer's) battery on a hill to his left supported by the 21st North Carolina Infantry. The 15th Alabama, which had been skirmishing near Union Church, rejoined the brigade. Trimble held his regiments out of sight behind the crest of the hill.
Frémont determined to advance his battle line with the evident intention of developing the Confederate position, assumed to be behind Mill Creek. This maneuver required an elaborate right wheel. Stahel's brigade on the far left had the farthest distance to cover and advanced first. Milroy moved forward on Stahel's right and rear. Union batteries were advanced with infantry lines south of Keezletown Road and engaged Confederate batteries. Stahel appeared oblivious to Trimble's advanced position. His battle line passed down into the valley, crossed the run, and began climbing Victory Hill. At a distance of "sixty paces", Trimble's infantry stood up and delivered a devastating volley. Stahel's brigade recoiled in confusion with heavy casualties. The Union brigade regrouped on the height opposite Victory Hill but made no effort to renew their assault.
Stahel did not renew his attack but brought up a battery (Buell's) to support his position. Trimble moved the 15th Alabama by the right flank and up a ravine to get on the battery's left. In the meantime, Ewell sent two regiments (13th and 25th Virginia) along the ridge to Trimble's right, attracting a severe fire from the Union battery. With a shout, the 15th Alabama emerged from their ravine and began to climb the hill toward the battery, precipitating a melee. Trimble advanced his other two regiments (16th Mississippi on the left and 21st Georgia on the right) from their position on Victory Hill, forcing back the Union line. The Union battery limbered hastily and withdrew, saving its guns. A Union regiment counterattacked briefly, striking the left flank of the 16th Mississippi, but was forced back in desperate fighting.
Trimble continued advancing up the ravine on the Confederate right, outflanking successive Union positions. In the meantime, Milroy advanced on Stahel's right, supported by artillery. Milroy's line came within rifle-musket range of the Confederate center behind Mill Creek and opened fire. Union batteries continued to engage Confederate batteries in an artillery duel. Bohlen advanced on the far Union left to stiffen Stahel's crumbling defense. Milroy's left flank was endangered by Stahel's retreat, and Frémont ordered him to withdraw. Jackson brought Taylor's brigade forward to support Ewell if needed, but Taylor remained in reserve on the Port Republic Road near the Dunker Church.
Seemingly paralyzed by the decimation of Stahel's brigade on his left, Frémont was unable to mount a coordinated attack. He ordered Schenck's brigade forward to find the Confederate left flank south of Union Church. Ewell reinforced his left with elements of Elzey's brigade. Severe firing erupted along the line but quickly died down. Elzey and Brig. Gen. George H. Steuart were wounded in this exchange. Frémont withdrew his force to Keezletown Road, placing his artillery on the heights to his rear (Oak Ridge). Artillery firing continued.
At dusk, Trimble pushed his battle line forward to within a quarter mile of the Union position, anticipating a night assault. Confederate accounts describe the Union soldiers going into camp, lighting fires, and making coffee. Ewell ordered Trimble to withdraw without making the attack.
The next day, Trimble's and Patton's brigades held Frémont at bay, while the rest of Ewell's force crossed the river to assist in the defeat of Brig. Gen. E. Tyler's command at Port Republic.