Ethanol is a volatile organic compound that can cause safety accidents and damage human health. Besides, it is considered a breath marker for intoxication and health assessment. Therefore, detecting ethanol gas is crucial. In this work, a NiO–ZnO p-n junction composite was prepared by a solvothermal method and pasted onto ceramic tube for gas sensing. The prepared NiO–ZnO were rod-shaped with porous and fluffy structure. The 3 % NiO–ZnO sensor exhibited excellent gas sensing performance due to abundant surface adsorbed oxygen species and oxygen vacancies that were confirmed by XPS and PL results. The sensor can realize fast and reversible detection of ethanol gas at low temperature (125 °C) with the help of ultraviolet light irradiation. The sensor response showed an excellent linear relationship to ethanol concentration within a wide range of 1∼1000 ppm. The response for 500-ppm ethanol was 8.1 with response/recovery time of 50 s and 14 s, respectively. The selective factor of ethanol is higher than 3 over common interferents. Simulation calculation results showed the combination of NiO with ZnO can significantly enhances the adsorption ability towards oxygen and ethanol gas. This study provides a valuable reference for preparing power-saving and high-performance gas sensors based on p-n junctions.