Село Козодуб знаходиться біля витоків річки Базавлук, на відстані 3 км від сіл Червоноіванівка і Теплівка. Практично злилося з селищем Соколівка, яке розташоване північніше. По селу протікає пересихаючий струмок з загатою. Поруч проходять автомобільна дорога Т 0429 і залізниця, роз'їзд Полівський за 2 км.