Machine learning has led to improvements in the efficiency and efficacy of subsurface engineering and characterization efforts that benefits the hydrocarbon and geothermal exploration and production as well as in carbon geo-sequestration. There have been rapid increases in sensor deployment, data acquisition, data storage, and data processing for purposes of geothermal/fossil energy development and exploration along with carbon geo-sequestration. This has promoted large-scale development of data-driven methods, machine learning and data analytics workflows to find and extract energy and material resources from the subsurface earth. Subsurface data ranges from nano-scale to kilometer-scale passive as well as active measurements in the form of physical fluid/solid samples, images, 3D scans, time-series data, waveforms, and depth-based multi-modal signals representing various physical phenomena, ranging from transport, chemical, mechanical, electrical, and thermal properties, to name a few. Integration of such varied multimodal, multipoint, time-varying data sources being acquired at varying scales, rates, resolutions, and volumes mandates robust machine learning methods to better characterize and engineer the subsurface earth. This review paper lays out popular machine learning applications in exploration, extraction, and recovery of subsurface energy resources, primarily in hydrocarbon exploration and production industry with potential applications in geothermal energy production and carbon geo-sequestration.