0 → C → D → E → 0
0 → Ci → Di → Ei → 0 { at every level }
Let Cki be the kernel of Ci mapping into Ci+1. Let Cai be the image of Ci-1 from above. Thus the homology group on Ci is Cki/Cai.
Establish similar notation for D and E. Thus the homology group on Ei is Eki/Eai.
Remember that the chain maps, from C to D to E, induce corresponding homomorphisms on the homology groups. Build a new table with homology groups running down the columns, and induced homomorphisms running across. Thus the 7th row looks like this.
Ck7/Ca7 → Dk7/Da7 → Ek7/Ea7
When this table is traversed in row order, an exact sequence of homology groups emerges. This is called the exact homology sequence or the long exact sequence. The proof is tedious, and involves lots of diagram chasing.
I'm going to prove the theorem for row 7, which is my favorite row. Remember that row 6 is above and row 8 is below.
Apply the serpent lemma, and Ck7 → Dk7 → Ek7 is exact. Restrict this row to these kernels. This causes no trouble from above, since row 6 maps into kernels. Furthermore, the chain maps f and g carry kernels to kernels. Thus, temporarily, let row 7 look like this.
0 → Ck7 → Dk7 → Ek7 → ?
Apply the serpent lemma to rows 6 and 7, and Ck7/Ca7 → Dk7/Da7 → Ek7/Ea7 is exact. That takes care of the central homology group.
The serpent lemma generates a function from Ek7 to C8/Ca8. Call this function h. Let x represent an element in the range of h, a coset of Ca8 in C8. The serpent naturally carries x to something in D8, which comes from D7. That's how h was constructed. So moving down to D9 yields 0. Therefore x becomes 0 in C9. In other words, x lies in Ck8. The image of h lies in Ck8, and is part of the homology group Ck8/Ca8.
What does h do to Ea7? Given y in Ea7, back up to find x in D7. This is how h works, and any x in the preimage of y will do. This includes the x that appears by pulling up to E6, back to D6, and down to D7. Now the image of x in D8 is 0, which pulls back to 0 in C8. Therefore h maps Ea7 into the 0 coset of Ca8, which is Ca8. We have a valid map from the homology of E7 into the homology of C8.
The serpent lemma tells us the elements of Ek7 are exact. Some y in Ek7 is in the image of Dk7 iff it is in the kernel of h. The same is true when y represents a coset of Ea7. Thus the homology group on the right is exact.
Let j be the function that follows h, mapping the homology of C8 into the homology of D8. Restrict the 8th row to its kernels, and j is the function that is implied by the serpent lemma. The lemma also tells us x is in the image of h iff it is in the kernel of j. View h as a function of homology, rather than a simple function on Ek8, and the homology group on C8 becomes exact.
The induced homology homomorphisms are exact ad D7, E7, and C8. This holds for every row, building a long exact sequence that runs forever in both directions.
We're using the fact that f and g are chain maps. Going from C6 to C7 to C8 is mirrored by the homomorphisms on their images in D6, D7, and D8. Thus the homology group on C7 is isomorphic to the first component of the homology group of D7. The same holds for the reverse maps from E back to D. Therefore the homology of the central column is the direct product of the homologies on either side. In other words, the long exact sequence is split exact on the middle column.