North Buffalo Township is located in western Armstrong County, extending from the west bank of the Allegheny River to the western county line.
According to the United States Census Bureau, the township has a total area of , of which is land and , or 1.70%, is water [REF].