According to the United States Census Bureau, the township has a total area of , of which, of it is land and of it (0.80%) is water. It is drained by the Lehigh River, which separates it from Lehigh County and Blue Mountain separates it from Carbon County to the north. Its villages include Berlinsville, Cherryville, Danielsville, Lehigh Gap (also in Lehigh County,) Pennsville, Rockville, and Treichlers.