McNelly leads his greenhorns direct into battle against Fisher and his bandits, but doesn't count on them being disciplined ... and the Bandits inflict a heavy loss on the Rangers.
When the Rangers return to the battlefield the next day to bury the dead, they find that Perdita (one of the captured girls) is still alive . McNelly takes his defeated army and Perdita to a local ally and landowner called Dukes for a morale boost and much needed reinforcements.
Perdita lets slip that she overheard Fisher talking to his men, and he plans to attack a settlement at midnight. McNelly rallies his men and they set a trap ... but something is wrong. McNelly replays the situation in his head - and turns on Perdita, who owns up to the betrayal in the hope that she could save her family.
The Rangers race back to Dukes' ranch, but it too late and it's been sacked - and Dukes taken prisoner. They track the Bandits to the Rio Grande and propose a trade - Perdita for Dukes. Fisher instead kills his hostage. McNelly orders Perdita over the river where Fisher's men will take ownership of her once again.
McNelly's health is deteriorating, and he gives his orders to Lincoln (Van Der Beek) that the regiment will pass into his care should he die. They propose a plan - to attack Fisher that night when his men will least expect it. They cross the Rio Grande, and lay siege to the Bandits' new home. Fisher faces off against McNelly, and is too quick on the draw for the lawman - shooting him in both hands. He is about to finish him off when Lincoln finds them, and shoots Fisher dead.
McNelly is taken back to Dukes' ranch, but dies. George Durham (Ashton Kutcher) was not cut out to be a Ranger and instead stays behind as a farm hand, and to comfort Dukes' daughter, while Lincoln orders the men under his command to hit the trails.