Hos was a clutch RBI machine. his mini slumps didn't ever seem to matter. he knew when to turn it on and when to coast I think. Hos clear cut 1.
Both had really good seasons, but Cain had more doubles, steals, runs, a higher batting average, a higher slug, higher OPS, higher OPS+, and more triples. In the end, at the plate they were pretty similar, and a case could be made for either, however Cain plays a much more premium defensive position at a super high level, so that's why I'd give the edge to him.