上町台地は縄文期には東西を
河内湾と
瀬戸内海に挟まれていた半島状の砂嘴だったと考えられており、弥生期から現在に至る期間を経て台地東部(東成地区の語源と言われる)は
淀川・
大和川水系から運ばれる大量の土砂が堆積し、河内湾が
河内湖、湿地帯を経て
沖積平野となり、台地西部(西成地区の語源と言われる)も同じく河川の働きにより大阪市の中枢部を含む平野を形成するにいたった。台地東部への下りが比較的なだらかなのに対し、台地西部への下りが急峻であるのは台地東部が淀川・大和川水系の上流に位置し、土砂の堆積量が豊富なためで、台地西部は標高が低く
大阪湾平均水面より低い
ゼロメートル地帯が広く分布している。なお、台地の標高は最も高い
大阪城天守閣跡で38メートルであり、北部はストンと淀川水系の大川に落ち込み、南部へはなだらかに下り北の大阪城大手町付近で24メートル、中央部の
天王寺交差点付近で16メートル、
帝塚山付近で14メートルの標高を保つが、南部の
万代池南方から急速に標高を失い
住吉大社付近で6メートルとなり細井川を越えた台地南端の
住吉区清水丘では標高は2〜3メートルとなっている。
もともと、江戸時代までは
河内(かわち=大阪東部の旧国名)を形成していた大和川が
柏原から北へ蛇行し現在の
東大阪市から
大東市あたりに大きな池を作り、現在の天満橋の辺りで淀川(大川)と接合して海へ流れていたことから、上町台地の北の端は大阪市
中央区天満橋あたりであり、南の端は住吉区の苅田付近までにわたる。行政区としては、
中央区の東部分、
天王寺区、
阿倍野区、住吉区北端と南部の一部にわたっている。
また、河内湖の形成過程では
天満橋の台地北端からさらに北へ砂州がつながり、半島状の上町台地は完全に両端が陸域化された。大阪湾の北岸は
千里丘陵のすぐ下、
吹田市の豊津や高浜といった地名があるあたりにあり、そこへ上町台地からの砂州が
大阪市の東三国か吹田市の
江坂辺りまで伸び、淀川や大和川の流れ込む河内湾と大阪湾は
垂水(現在の吹田市垂水付近)というわずかな幅の水路でつながっているだけだった。そのため、時代が下がるにつれて河内湾は河川水による淡水化が進み河内湖となる。
仁徳天皇は河内湖と大阪湾をつなぎ、河から海への水運や、河内湖の排水をスムーズにするため、現在の天満橋のあたりで砂州を掘って河内湖と大阪湾を直結する
難波の堀江という運河を作ったといわれている。