Abrest is located about 3 kilometres (1.9 mi) south of Vichy and 4 kilometres (2.5 mi) north of Saint-Yorre. The commune straddles the Allier River with the river forming the western boundary of the commune in the southern portion. Departmental road 131 traverses some hamlets of the commune on the west bank of the Allier while departmental road 906e (former D906): Avenue de Vichy and Avenue de Thiers is on the east bank and passes through the centre of the town from Vichy to Saint-Yorre.