According to the United States Census Bureau, the township has a total area of 6.8 square miles (17.6 km2), of which, 6.8 square miles (17.6 km2) of it is land and 0.15% is water.
The township is bordered in Montgomery County by (clockwise from west) Whitemarsh Township to the west, Upper Dublin Township to the north, shares a corner with Abington Township to the northeast, and Cheltenham Township to the east.