TCP flow control prevents a fast sender from overwhelming a slower receiver. The receiver advertises its available buffer space in the TCP header (window size), and the sender limits transmission accordingly. This prevents packet loss and ensures reliable delivery.