According to the United States Census Bureau, the township has a total area of 10.8 square miles (27.9 km²), all of it land.
Union Township is bordered by East Buffalo Township to the north, the West Branch Susquehanna River to the east, over which lies Northumberland County, Snyder County to the south and Limestone Township to the west.