Avià está situado a 3 kilómetros al sudoeste de Berga, y 119 km de Barcelona, en el centro del Berguedà al pie de la carretera que une Berga y Solsona, y tocando el río Llobregat, el cual constituye su límite oriental.