Grad Vis se nalazi u velikom i prirodno zaštićenom zaljevu (uvala Svetog Jurja) na sjeveroistočnoj strani otoka Visa, okrenut prema otoku Hvaru i dalmatinskom kopnu. Viška luka je smještena u najviše uvučenom jugozapadnom dijelu zaljeva, kojeg otočić Host i poluotok Prirovo štite od utjecaja otvorenog mora. Unutar zaljeva nalaze se i manja sidrišta na predjelima Kut i Stonca.
Pojas visokih brda (250-300 m) odvaja gradić od plodnih polja u unutrašnjosti otoka (Dračevo i Velo Polje), koja su predstavljala osnovu gospodarskog razvoja mjesta posebno kroz vinogradarstvo.
Području Grada Visa pripada i razvedena južna i jugoistočna obala otoka Visa s mnogobrojnim uvalama (Milna, Rukavac, Srebrna, Stiniva, Stončica i dr.) i otočićima Budihovac i Ravnik, koji imaju veliki turistički potencijal.