Population cycles are prevalent in ecosystems and play key roles in determining their functions1,2. While multiple mechanisms have been theoretically shown to generate population cycles3-6, there are limited examples of mutualisms driving self-sustained oscillations. Using an engineered microbial community that cross-feeds essential amino acids, we experimentally demonstrate cycles in strain abundance that are robust across environmental conditions. A nonlinear dynamical model that incorporates the experimentally observed cross-inhibition of amino acid production recapitulates the population cycles. The model shows that the cycles represent internally generated relaxation oscillations, which emerge when fast resource dynamics with positive feedback drive slow changes in strain abundance. Our findings highlight the critical role of resource dynamics and feedback in shaping population cycles in microbial communities and have implications for biotechnology.