Geographically, Shoals Township occupies  in southern Surry County, with its southern border running along the Yadkin River.
There are no incorporated municipalities within Shoals Township; however, there are several smaller, unincorporated communities located here, including the community of Shoals.