Ulm nằm ở vị trí hai con sôngBlau vàIller nhập dòng với sôngDanube. Thành phố có độ cao trung bình 479 m (1.571,52 ft) so vớimực nước biển. Phần lớn diện tích thành phố, bao gồm cả thị trấn cổ, nằm ở bờ trái của sông Danube; chỉ có các quận Wiblingen, Gögglingen, Donaustetten và Unterweiler nằm ở bờ phải của sông. Đi qua thị trấn cổ, về phía bên kia của sông Danube, là thành phố song sinhNeu-Ulm củabangBavaria, nhỏ hơn Ulm. Phía nam thành phố có con sông Danube bao quanh, còn lại thành phố được bao bọc xung quanh bởi rừng và đồi với độ cao hơn 620 m (2.034,12 ft), một phần của chúng thuộc về dãy núi Swabian Alps. Phía nam của Danube, đồng bằng và đồi kết thúc ở cạnh bắc của dãyAlps, cách Ulm khoảng 100 km và có thể nhìn thấy được khi thời tiết quang đãng.
Thành phố được chia thành mười támquận (tiếng Đức:Stadtteile): Ulm-Mitte, Böfingen, Donaustetten, Donautal, Eggingen, Einsingen, Ermingen, Eselsberg, Gögglingen, Grimmelfingen, Jungingen, Lehr, Mähringen, Oststadt, Söflingen (with Harthausen), Unterweiler, Weststadt, và Wiblingen.