Місто розташоване на Придніпровській низовині, по обох берегах річки Ворскла. Одна з приток річки — Коломак, впадає в неї в межах міста. В межах міста знаходяться кілька невеликих природних озер та безліч штучних ставків. Рельєф міста в більшості своїй рівномірний, на відстані 1,5 км від річки спостерігається різкий спуск (правий берег Ворскли, на якому розташоване місто, крутіший, висота пагорбів доходить до 80—100 м щодо рівня річки).