上海市は東経120°52ー122°12′、北緯30°40-31°53°′に位置し、太平洋西岸、アジア大陸東側、中国南北海岸中心部にあたる。黄浦江と長江の2つの川が合流するところにある、面積は6,340.5平方キロある、北部は江蘇省と接し、南部から西部にかけて浙江省と隣接。東は東海に面している、街の中心地は長江の支流の黄浦江が流れる、黄浦江と長江の2つの川が呉淞口付近で合流して東海に流れる。西には天馬山、鳳凰山あり、天馬山は海抜99.8メーター、上海一の高さとなる。海域には崇明島、長興島、横沙島ある、総面積は6340.5平方キロある。