In the American Civil War, Geddes served in the Union army, enlisting as a private in the 8th Iowa Infantry. He was promoted to captain and then lieutenant colonel, and after February 1862 as colonel of volunteers. He took part in the fighting at Shiloh, where he was wounded and captured. He was imprisoned for a time at Madison, Georgia, and in Libby Prison in Richmond, Virginia. After being exchanged, he fought at Vicksburg and Jackson. In October 1863, he was given command of a brigade and sent to Brownsville, Texas. Subsequently, he served as the provost marshal of Federal occupied Memphis, Tennessee, which he saved from seizure by Confederate cavalry under Nathan Bedford Forrest. He commanded a brigade in the Mobile Campaign and fought with distinction at the Battle of Spanish Fort. On January 13, 1866, President Andrew Johnson nominated Geddes for appointment to the grade of brevet brigadier general of volunteers, to rank from June 5, 1865, and the United States Senate confirmed the appointment on March 12, 1866.