Westbury is in the far west of Wiltshire, close to the border with Somerset. It lies under the northwestern edge of Salisbury Plain; in the past, the name Westbury-under-the-Plain was sometimes used to distinguish it from other towns of the same name. The town is southeast of the city of Bath, approximately south of the county town of Trowbridge and the same distance north of the garrison town of Warminster. Nearby villages are Bratton, Chapmanslade, Dilton Marsh, Edington, Heywood and Hawkeridge, Coulston, and Upton Scudamore; and in Somerset, Rudge and Standerwick.