Ostrava leží v údolí Moravskej brány, približne 360 km východne od hlavného mesta Prahy, 10 km južne od štátnej hranice s Poľskou republikou a 60 km severozápadne od hranice so Slovenskou republikou. Moravská brána je priechodným miestom medzi horstvami Jeseníkov a Beskýd. Nadmorská výška mesta sa pohybuje v rozmedzí 200-335 m.n.m. Jeho rozloha predstavuje 21 422 ha, územie mesta meria vzdušnou čiarou 20, 1 km v smere východ-západ a 20, 5 km v smere sever-juh.