  Quantum error correction is a critical technique for transitioning from noisy
intermediate-scale quantum (NISQ) devices to fully fledged quantum computers.
The surface code, which has a high threshold error rate, is the leading quantum
error correction code for two-dimensional grid architecture. So far, the
repeated error correction capability of the surface code has not been realized
experimentally. Here, we experimentally implement an error-correcting surface
code, the distance-3 surface code which consists of 17 qubits, on the
\textit{Zuchongzhi} 2.1 superconducting quantum processor. By executing several
consecutive error correction cycles, the logical error can be significantly
reduced after applying corrections, achieving the repeated error correction of
surface code for the first time. This experiment represents a fully functional
instance of an error-correcting surface code, providing a key step on the path
towards scalable fault-tolerant quantum computing.
