I've always enjoyed both. Favs that stand out are BF2 and Cod4.
If I choose now though then it is definitely Battlefield 3.
Cod has run it's course, a new release every year is too much. I still play Cod4 at lans and Black ops online (although not for a very long time now) Black ops has extra frills, but I still get as much fun from cod4. Black ops I struggle with staying power to keep playing it online, probably because there isn't as much team work and I suck in online standards. But it's just not as fun as it used to be, it still feels the same and by that definition - not worthy of rehashed versions coming out so frequently.
It also breaks up the community having so many versions out there because not everyone is going to still keep up with the franchise.
Onto BF3 - well, at lans or online I have always enjoyed playing the battlefield franchise. BF2 being the favorite.
There is more to do, more team work, tanks, heli's, jet's, bigger maps and just overall more awesomeness. You can actually savour the moment of looking forward to BF3, because there isn't one made everyday. You know it will offer something different and well.. it just looks fucking amazing!
BF3, BF3, BF3 *chants*