Město se nachází v údolí na levém břehu řeky Opavy na Hlučínsku, nedaleko hranic s Polskem.
Skládá se ze dvou částí – Dolní Benešova a Zábřehu. Ke kulturním památkám ve městě patří především kostel sv. Martina s kaplí z roku 1669 a věží postavenou v roce 1861, kaple sv. Kříže ze 70. let 19. století a renesanční zámek ze 16. století, přestavěný v 19. a 20. století. Na okraji města se nachází rybník Nezmar a je zde možnost koupání a vodních sportů.