According to the United States Census Bureau, the township has a total area of , all of it land [REF].
Halfmoon Township is bordered by Taylor and Worth townships to the northwest, Patton Township to the northeast, Ferguson Township to the southeast and Huntingdon County to the southwest.