Расположен в центре Волыно-Подольской возвышенности (48° 25' северной широты, 26° 32' восточной долготы) в 101 км от Хмельницкого. Через город протекает река Смотрич, создавая скалистым каньоном своего русла омега-образную петлю. На территории образованного каньоном полуострова расположен Старый город — древний историко-культурный комплекс. Старый город состоит из старинных архитектурных построек, отражающих культуры народов, проживавших здесь в разное время.