카라치는 파키스탄 남부신드 주 연안,아라비아해의 항만을 따라 자리해 있다. 카라치의 지형은 대체로 평탄한 해안 지대이나, 암반 노출부, 작은 산과 습지대가 곳곳에 흩어져 있다. 카라치 항 주변의 해수에서는맹그로브숲이 자라며 남동쪽으로 좀더 나아가면 거대한인더스 삼각주가 있다. 카라치의 서쪽에는라스무아리란 이름의 곶이 있는데 해식절벽, 거친 사암절벽, 자연 해변가 등을 주로 볼 수 있다.
카라치 시는 두 권역으로 나뉜다. 도시 북서쪽에카사 산과물리 산이 놓여 있어북나지마바드와오랑기 지역을 가르는 경계가 된다.[1] 카라치의 산은키르타르 산맥의 일부로 척박한 환경이며 최고도는 해발 528m에 이른다.
산과 산 사이에는 넓은 해안 평원이 펼쳐져 있으며 그 사이로 마른 강바닥과 수로가 깔려 있다. 카라치는말리르 강과리아리 강에 둘러싸여 발전을 이루었으며 리아리 강 기슭에는 콜라치라고 하는 정착지가 있다. 카라치의 서부는인더스강의 홍수지대에 놓여 있다.[2]
아라비아해는 카라치의 기후에 큰 영향을 끼치며, 특히신드 주 내부지방과 비교했을 때 기온이 더욱 온화하다.
카라치는건조 기후 (쾨펜의 기후 구분 BWh)에 속하며 여름이 매우 긴 한편,아라비아해의 영향으로 기온은 온화한 편이다. 연간 평균 강수량은 한 해동안 284mm에 불과하며 대부분의 강수량이 7~8월몬순 기간에 집중된다. 여름에는 대체로 덥고 습하지만 그 더운 여름 동안 시원한 해풍이 불어와 완화시켜준다. 다만 살인적인 열기에는 노출되기 쉬운 기후이다.[3]겨울은 건조하고 쾌적한 기후로 12월부터 2월까지 해당되며, 그 후 3월부터 몬순이 찾아오는 6월까지는 따뜻한 계절이 찾아온다. 바다와 인접해 있기 때문에 습도는 일 년 내내 거의 일정한 편이다.
카라치의 역대 최고 강수량 기록은 1967년 7월의 689.3mm이다.[4] 하루 사이 최고 강수량 기록은 1953년 8월 7일의 278.1mm로, 도시 전체에 폭우가 쏟아져 큰 홍수가 났다.[5]카라치의 역대 최고 기온은 1938년 5월 9일에 기록한 48°C이며[6] 최저 기온은 1934년 1월 21일에 기록한 0°C이다.[4]