We already showed a flat module has 0 tor, so we only need show the converse. Start with 0 → F1 → F0 → C → 0 as usual. This is a template for the rows of a 5×5 matrix E, similar to the one we employed to prove tor is commutative. Replace 0 → G1 → G0 → B → 0 with an arbitrary short exact sequence. Becausse tor(C,M) = 0 for any module M, each row is deliciously exact. The middle column is still exact, since F0 is free. Build the same jagged isomorphism between E4,2 and E2,4. Since the fourth row is exact, the kernel equals the image = 0 at E4,2. The homology is 0, and the same is true of E2,4. The vertical kermen = the image = 0, and the fourth column is exact. This is C tensor an arbitrary exact sequence, hence C is a flat module.
Let 0 → B → C → C/B → 0 act as template for a 5×5 matrix. Tensor with 0 → G1 → G0 → M → 0 on the right. Since G0 is free and flat, the middle row is exact. By assumption the second and fourth columns are exact. Review the conditions of the 5 lemma, and apply this to the second and third rows. The third row is exact and the second is almost exact. (Close enough.) Looking at the vertical arrows, the second and fourth are injective and the first is surjective. Therefore the middle arrow, from E2,3 to E3,3, is injective. The middle column is exact. For every M, tor(C,M) = 0. By the above, C is flat.
Don't assume the converse. Z is a flat Z module, yet the quotient module Z2 is not flat.