During each of the late Pleistocene glacial–interglacial transitions, atmospheric carbon dioxide concentrations rose by almost 100 ppm. The sources of this carbon are unclear, and efforts to identify them are hampered by uncertainties in the magnitude of carbon reservoirs and fluxes under glacial conditions. Here we use oxygen isotope measurements from air trapped in ice cores and ocean carbon-cycle modelling to estimate terrestrial and oceanic gross primary productivity during the Last Glacial Maximum. We find that the rate of gross terrestrial primary production during the Last Glacial Maximum was about 40±10 Pg C yr⁻¹, half that of the pre-industrial Holocene. Despite the low levels of photosynthesis, we estimate that the late glacial terrestrial biosphere contained only 330 Pg less carbon than pre-industrial levels. We infer that the area covered by carbon-rich but unproductive biomes such as tundra and cold steppes was significantly larger during the Last Glacial Maximum, consistent with palaeoecological data. Our data also indicate the presence of an inert carbon pool of 2,300 Pg C, about 700 Pg larger than the inert carbon locked in permafrost today. We suggest that the disappearance of this carbon pool at the end of the Last Glacial Maximum may have contributed to the deglacial rise in atmospheric carbon dioxide concentrations.