BF. COD has been the same game since COD4, with different textures, guns and modes. Point and shoot, and whoever is faster (not just your reaction time, but internet speed/etc) wins.
BF is still the large map based game it use to be, but offers a harder challenge. Sure, you might be good at killing everyone on foot, but wait! There's a tank. Pushes skill more I find, especially with how diverse the fight can be on different maps/in different areas.
BF will always get my vote between those two.
That said, I've moved on from both. New winner? Arma 3. Let the hate optimization hate commence.