Statutární město Ostrava se nachází 10 kilometrů jižně od státní hranice s Polskem a 50 kilometrů západně od hranice se Slovenskem, v severním okraji Moravské brány.
Nad soutokem řeky Lučiny s Ostravicí byl vybudován Slezskoostravský hrad (r. 1297) Ostravou protéká řeka Ostravice, která město dělí na moravskou a slezskou část.