The Earth underwent several snowball glaciations between 1,000 and 542 million years ago. The termination of these glaciations is thought to have been triggered by the accumulation of volcanic CO2 in the atmosphere over millions of years1, 2. Subsequent high temperatures and loss of continental ice would increase silicate weathering and in turn draw down atmospheric CO2 (ref. 3). Estimates of the post-snowball weathering rate indicate that equilibrium between CO2 input and removal would be restored within several million years 4, potentially triggering a new glaciation. However the transition between deglaciation and the onset a new glaciation was on the order of 107 years. Over long timescales, the availability of fresh rock can become a limiting factor for silicate weathering rates5. Here we show that when this transport-determined limitation is incorporated into the COPSE biogeochemical model6, the stabilization time is substantially longer, >107 years. When we include a simple ice-albedo feedback, the model produces greenhouse–icehouse oscillations on this timescale that are compatible with observations. Our simulations also indicate positive carbon isotope excursions and an increased flux of oxygen to the atmosphere during interglacials, both of which are consistent with the geological record7, 8. We conclude that the long gaps between snowball glaciations can be explained by limitations on silicate weathering rates.