Crook had made a previous attempt in March to corner the Lakota. When his force got within a hundred miles of the Yellowstone River, it was struck by a blizzard, forcing him to abandon his supply train and resulting in numerous frostbite casualties. When the force managed to locate a track of horses, Crook sent three companies of the 2nd Cavalry under its commander, Colonel J. J. Reynolds, to continue the search.
Reynolds discovered a village of Cheyenne which was in use as a staging area, containing 800-1500 ponies as well as large stores of guns, ammunition, food and other supplies. Ordering a pistol charge by a single company under his command, Reynolds took the Cheyenne by surprise and drove their warriors from the immediate area, but failed to support his attack with the rest of his force. When resistance on the outskirts of the village stiffened, Reynolds ordered the Cheyenne supplies destroyed and left with great haste, leaving several soldiers behind and exhausting his force in attempting to reunite with Crook thereafter. Guards posted that night to watch the ponies which had been seized were so tired they fell unconscious, and the ponies were liberated by Cheyenne trailing Reynolds' force.
For failing to follow through on the initial attack with his full detachment, and for destroying rather than holding the Cheyenne supplies, Reynolds was later court-martialed.
At 8 a.m., Crook stopped to rest his men and animals. Although deep in hostile territory, Crook made no special dispositions for defense. His troops halted in their marching order. The Crow and Shoshone scouts remained alert while the soldiers rested. Soldiers in camp began to hear gunfire coming from the bluffs to the north, where the scouts were positioned. As the intensity of fire increased, a scout rushed into the camp shouting, "Lakota, Lakota!" By 8:30 am, the Sioux and Cheyenne had hotly engaged Crook's Indian allies on the high ground north of the main body. Heavily outnumbered, the Crow and Shoshone scouts fell back toward the camp, but their fighting withdrawal gave Crook time to deploy his forces.
Crook directed his forces to seize the high ground north and south of the Rosebud Creek. He ordered Captain Van Vliet, with two troops of the 3d Cavalry, to occupy the high bluffs to the south. In the north, the commands of Major Chambers with two companies of the 4th Infantry and three companies of the 9th Infantry, and Captain Noyes with three troops of the 2d Cavalry, formed a dismounted skirmish line and advanced toward the Sioux. Their progress was slow due to flanking fire from Indians occupying the high ground to the northeast.
To accelerate the advance, Crook ordered Captain Anson Mills, commanding six troops of the 3d Cavalry, to charge the Sioux. Mills' mounted charge unnerved the Indians and they withdrew along the ridgeline, not stopping until they reached the next crest. Mills quickly re-formed three troops and led another charge, driving the Indians northwest again to the next hill. Preparing to drive the Indians from there, Mills received orders from Crook to cease the advance and assume a defensive posture. Chambers and Noyes led their forces forward in support and, within minutes, joined Mills on top of the ridge. The bulk of Crook's command, joined by the packers and miners, occupied Crook's Ridge. Establishing his headquarters there at approximately 9:30 am, Crook considered his next move.
At the west end of the field, Lieutenant Colonel William Royall, Crook's second in command, pursued the Indians' attacking the rear of Crook's camp. Leading Captain Henry's three troops of the 3d Cavalry and two troops borrowed from Mills' command, Royall advanced rapidly along the ridgeline to the northwest, finally halting his advance near the head of Kollmar Creek. Royall's detachment was a mile from the main body and in danger of being cut off and destroyed. Sensing this vulnerability, the Sioux and Cheyenne warriors shifted their main effort to the west and concentrated their attacks on Royall. Seeing the danger, Crooks sent orders to Royall to withdraw to Crooks Ridge. Royall sent only one troop to join Crook, claiming later his forces had been too hotly engaged.
Crook's initial charges secured key terrain but did little to damage the Indian forces. Assaults scattered the Indians but they did not quit the field. After falling back, the Sioux and Cheyenne kept firing from a distance and attacked several times in small parties. When counterattacked by the soldiers, the warriors sped away on their swift horses. Crook realized his charges were ineffective.
Crook returned to his battle plan. Believing the Sioux and Cheyennes' fighting tenacity was based on defense of families in a nearby village, Crook ordered Mills and Noyes to withdraw their cavalry from the high ground and follow the Rosebud north to find the suspected village. He recalled Van Vliet's battalion from the south side of the Rosebud.
Only 1 mile (1.6 km) away, Royall's situation was deteriorating. He tried to withdraw across Kollmar Creek but found the Indians' fire too heavy. Next he began to withdraw southeast along the ridgeline. A large group of Sioux and Cheyenne broke off from the fight against Crooks' main forces and charged boldly down the valley of Kollmar Creek, advancing all the way to the Rosebud. The arrival of Van Vliet's command checked the warriors' advance. Crook ordered the Crow and Shoshone scouts to charge into the withdrawing warriors' flank.
Mills' advance up the Rosebud left Crook without sufficient force to aid Royall and his hard-pressed battalion. While Mills made his way up the Rosebud, searching for a village that did not exist, Royall's situation grew worse.
At approximately 1130, Royall withdrew to the southeast and assumed a new defensive position. He hoped to lead his command across Kollmar Creek and rendezvous with Crook. Meanwhile, the Sioux and Cheyenne attacked him from three sides. From his headquarters, Crook realized that Royall needed help to get out of the situation, help only Mills' force could provide. Crook sent orders to Mills redirecting him to turn west and attack the rear of the Indians' pressing Royall.
At approximately 1230, Royall decided against further waiting and withdrew his troops into the Kollmar ravine to remount their horses. From there, they would have to ride through gunfire to reach the relative safety of Crook's main position. As the US cavalry began their dash, the Crow and Shoshone scouts countercharged the pursuing enemy and relieved much of the pressure on Royall's men. Two companies of infantry left the main position to provide covering fire from the northeast side of the ravine. Royall's command still suffered grievous casualties.
Mills arrived too late to assist Royall's withdrawal, but his unexpected appearance on the Indians' flank caused the Sioux and Cheyenne to break contact and retreat. Concentrating his mounted units, Crook now led them up the Rosebud in search of the non-existent Indian village. The advance came upon a narrow ravine which the scouts warned was an excellent spot for an ambush. Crook halted his advance. The battle of Rosebud was over. By the standards of Indian warfare, it had been an extremely long and bloody engagement. Never before had the Plains Indians fought with such ferocity, and never before had they shown such a willingness to accept casualties. Nor was their sacrifice in vain. Concerned for his wounded, short on supplies, and perhaps still shaken by the Indians' ferocity, Crook returned to his camp on Goose Creek and stayed there for seven weeks awaiting reinforcements. Unlike his enemies, Crook's command would play no role in the momentous events at The Little Bighorn.
The hard fought battle lasted for six hours. Hard fighting by Crook's Indian allies during the early stages saved his command from a likely devastating surprise attack. The gallantry of the Crow and Shoshone scouts throughout the battle was crucial to Crook's averting disaster.
Crook withdrew to a position on Big Goose Creek, near present-day Sheridan, Wyoming, and waited 7 weeks for reinforcements from the 9th Infantry and 5th Cavalry before resuming the campaign on August 5.