Ashcroft is a village municipality that straddles the Thompson River in the Thompson Country region of south central British Columbia, Canada. East of BC Highway 1 and on BC Highway 97C, the locality is by road about 45 kilometres north of Spences Bridge and 11 kilometres south of Cache Creek.