La cittadina, circondata dai monti Carseolani, è situata al confine dell'Abruzzo marsicano con il Lazio, sul versante settentrionale della piana del Cavaliere alle pendici del monte Fontecellese (1 623 m s.l.m.). Il nucleo urbano si articola in due zone, la parte più antica che sorge a circa 650 m s.l.m. sul colle Sant'Angelo, dove si trova il castello medievale, e la parte moderna a poco più di 600 m s.l.m.
Il nucleo urbano di Carsoli è attraversato dal fiume Turano che forma nel confinante territorio reatino l'omonimo lago artificiale. Il corso d'acqua è alimentato da due torrenti, il Rio Sant'Antonio e il Rio Valle Mura, le cui sorgenti si trovano sul monte Bove. In località Valle Mura, non distante da Tufo Basso, è stata realizzata una diga artificiale dotata di vasche di laminazione circondate da terreni in servitù di allagamento, onde evitare esondazioni a valle del Rio Valle Mura e del fiume Turano.