I'm a bit dubious about this thread as it has the potential to turn into a mud-slinging match. I'm letting this up purely on the basis that I can trust people not to fall into acts of trolling when they write replies and they can be diplomatic about responses. Please don't let me down guys! Warning given!
Both games are stellar examples of modern gaming done right but they come from different angles; particularly in the multiplayer scenes. BF3 works a lot more on teamwork aspects and bonding as a virtual unit in order to overcome the opposing team. Solo flyers don't tend to get too far in games of Rush and Conquest and the team effort is what helps win a bout. Where COD excels is in the ability for one to become a champion among the crowd. Be it DM, TDM or any other game mode, more praise and "ego-points" are awarded to the individuals thru perks, killstreaks and match winning shots. They both work but on different planes.
As for the actual mechanics of each of the games, my sway is more towards COD. The action is thrilling, on a constant high and runs at a smooth 60fps no matter your hardware. Story modes are hollow but the addition of extra modes and co-op affairs help build a more complete package. BF3 does a great job of making use of destruction physics and really does make a war zone look and feel as such. Issue is, frame rate is hampered for console versions, graphically it's not much to admire (not saying a game has to be pretty to be good but it's a subtle bonus), more bugs in the way of clipping, bizarre animations (particularly when killed) and there are peaks and troughs in the action rather than a constant flow. Personally, given the choice, I'd go with COD but I'd always consider BF on the back burner for when COD just gets irritating and you want a different spin on the genre.