What's the difference between Flow Control and Congestion Control in TCP?

What's the difference between Flow Control and Congestion Control in TCP? This can be broken down into two parts: 1) What is the overall purpose of Flow vs Congestion control, and 2) How is the t...