This species ranges from western Ethiopia, southern Sudan and northeastern Democratic Republic of Congo, through Uganda, Kenya and southern Somalia, south to central Mozambique and Zimbabwe. There is an apparently isolated population in KwaZulu-Natal, eastern South Africa, and in extreme southern Mozambique. It might occur in northern Botswana and the Caprivi Strip of Namibia, but the respective distributions of this species and Hyperolius nasutus are not well known. It is likely to range further west through the Central African Republic and southern Chad, but there are no records from these countries, and the respective distributions of this species and Hyperolius igbettensis (known from Cameroon westwards) are very poorly known. It occurs from sea level up to 2,000m asl in Ethiopia, and 2,286m asl in Malawi.