Heffen ligt ten westen van Mechelen en grenst aan de dorpen Leest en Battel en aan de gemeente Willebroek. Heffen wordt doormidden gesneden door de N16.