Ferguson was born in
İzmir, Turkey, of British parents in 1913. He attended elementary school in
Scotland and later settled with his family in
Whittier, California. He became a naturalized United States citizen March 28, 1930; graduated from a local high school in 1931, and from
Fullerton Junior College in California, in 1934. He enlisted in the Air Corps in October 1934, began his flying training a year later and completed it in July 1936. He flew as a flying cadet for one year before being commissioned a second lieutenant in June 1937. He was assigned in March 1940 to
Hamilton Field, California as commanding officer of the 79th Pursuit Squadron. In April 1942, he became executive officer of the 20th Pursuit Group at
Charlotte, North Carolina, and from July 1942 to October 1943, served as commanding officer of the 337th Fighter Group. In October 1943, Ferguson organized and commanded the 405th Fighter-Bomber Group at
Walterboro, South Carolina, and took it to Europe four months later. He participated with the 405th Group in preinvasion attacks on Europe until his assignment in April 1944 as assistant chief of staff with the 9th Fighter Command. He participated as an air controller on the night of the Normandy invasion and served in various campaigns until the German surrender. In December 1945 he returned to the United States. He later became an instructor in the Tactical Air Section of the
Air Command and Staff College,
Maxwell Air Force Base, Alabama. Ferguson was assigned in November 1947 to the U.S. Air Force advisory group in
Ankara, Turkey, and later became chief of that group. He departed for the Far East in June 1950, where he served as assistant to the vice commander and later assistant deputy for operations for the
U.S. Far East Air Forces. From June 1951 to February 1952, he was vice commander of the
Fifth Air Force in Korea. He returned to the United States and served as deputy commander of the
Ninth Air Force of the
Tactical Air Command at
Pope Air Force Base, North Carolina, ==Awards and decorations==