Jaunjelgava atrodas Viduslatvijas zemienes Lejasdaugavas senlejā, Daugavas kreisajā krastā. Pilsētas vecākā daļa atrodas tikai ap 2 m virs vidējā Daugavas ūdenslīmeņa (32,5 m virs jūras līmeņa), kamēr pilsētas Dienvidu daļa paceļas pa ielejas nogāzi līdz 68 m virs jūras līmeņa. Daugavas platums pie pilsētas ir aptuveni 300 m, dziļums - 6 m.