Gjirokastra liegt im Süden Albaniens im Flusstal des Drino, das sich hier zur Dropull-Ebene weitet. Die älteren Quartiere der Stadt sind am steilen Hang des Mali i Gjerë auf bis zu 480 m ü. A. erbaut. Neuere Stadtteile ziehen sich abwärts bis zu den kleinen Gewerbegebieten am Flussufer auf 190 m ü. A. Durch die Stadt fließen einige kleinere Bäche von Südwesten Richtung Nordosten, die unterhalb von Gjirokastra in den Drino münden. Bei starkem Niederschlag schwellen sie stark an und treten gelegentlich über die Ufer. Wälder sind im nahen Umland rar. In der Flussebene wird teilweise Landwirtschaft und Viehzucht betrieben.
Gjirokastra ist im Nordwesten von Tepelena, im Südosten von Libohova und im Süden von Lazarat benachbart. Der Grenzübergang nach Griechenland in Kakavija ist nur 36 Kilometer entfernt. Die Straße über den Muzina-Pass nach Saranda führt nur einige Kilometer südöstlich der Stadt.
Gjirokastra befindet sich in der mediterranen Klimazone mit warmen und niederschlagsarmen Sommern. Die Winter jedoch sind kalt und niederschlagsreich. Charakteristisch sind die Talwinde aus Norden.