Hasloch lies on the river Main in the Würzburg region. The river at this point is the border between Bavaria and Baden-Württemberg. Hasloch is located on the southern edge of the Mittelgebirge Spessart. The Haslochbach flows into the Main east of the village.