The pigeon has a wide range in south-eastern Asia, where it occurs in Bangladesh, Bhutan, Brunei, Cambodia, China, India, Indonesia, Laos, Malaysia, Myanmar, Nepal, Thailand, and Vietnam. Its natural habitats are subtropical or tropical moist lowland forests, subtropical or tropical mangrove forests, and subtropical or tropical moist montane forests. It may be found from sea level to elevations of in the Himalayas and on Sumatra. Being mainly a foothill bird, it probably only breeds above an elevation of , although feeding flocks below this are common. It is usually found in old-growth forests. The species is generally fairly common where extensive stands of forest remain.