Улм лежи на точката каде реките Блау и Илер се влеваат во Дунав. Поголемиот дел од градот се наоѓа на левиот брег на Дунав, а само областите Виблинген, Гуглинген, Донауштетен и Унтервајлер се сместени на десниот брег. На другата страна на реката се наоѓа Ној-Улм, град кој е сместен во сојузната држава Баварија. Тој е помал од Улм и до 1810 година бил дел од него (со население од 50.000 жители). Соседни општини од Баден-Виртемберг се Илеркирхберг, Илериеден, Штајх, Хутишајм, Ербах, Блаубојрен, Блауштајн, Дорнштат, Бајмерштетен и Лангенау.
Улм е поделен на осумнаесет области: Улм-Мите, Буфинген, Донауштетен, Донаутал, Егинген, Ајнзинген, Ерминген, Езелсберг, Гуглинген, Гримелфинген, Јунгинген, Лер, Меринген, Остштад, Суфлинген (со Хартхаузен), Унтервајлер, Вестштад и Виблинген.