The township is in southeastern Franklin County, bordered to the east by Adams County. The borough of Mont Alto is surrounded by the northern part of the township but is a separate municipality. The western half of the township is part of the Great Appalachian Valley, an agricultural area with elevations in the township ranging from , while the eastern half is on the slopes and crests of South Mountain, the highest point of which is the summit of Snowy Mountain, with an elevation exceeding . The Appalachian Trail traverses the eastern side of the township.