Greencastle is a borough in Franklin County in south-central Pennsylvania, United States. The population was 4,251 at the 2020 census. Greencastle lies within the Cumberland Valley of Pennsylvania.