Castiglione liegt 108 km nördlich von Rom, 37 km nördlich von Viterbo und 17 km südöstlich von Orvieto. Es ist die nördlichste Gemeinde Latiums im Tibertal.
Der mittelalterliche Ortskern erhebt sich auf einem steil zum Tal abfallenden Hügel.
Zur Gemeinde gehören die Ortsteile Sermugnano und Vaiano.
Castiglione liegt 12 km von der Auffahrt Orvieto auf die Autobahn A1Autostrada del Sole von Rom nach Mailand (Auffahrt Orte) entfernt. Der Bahnhof von Castiglione an der Bahnstrecke Florenz–Rom liegt in 4 km Entfernung beim Ortsteil Sant’Egidio von Orvieto.