Geographically, Shoals Township occupies  in southern Surry County, with its southern border running along the Yadkin River.
Shoals Township's location can be described as being located in the southern part of Surry County, with its southern edge following the course of the Yadkin River.