Black Ops 2 isn't out yet, so I won't judge without playing. But both MW3 and BF3 are average shooters.
Out of those two, BF3 is the better game because it's not a reskinned version of an earlier iteration, like MW3 is. However, BF3 is way below BF2 gameplay wise. Mostly because it rewards the players who spend the most time in the game, leading to scenarios where a team is losing the game because of opposing players with every vehicle perk unlocked.
Disregarding those issues, the choice still a matter of taste. If you're a close quarter combat player, you should play MW3, if you're more interested in squad based gameplay in huge environments, then BF3 is your game.
Other games you could try out are Medal of Honor (shit singleplayer, decent multiplayer), Unreal Tournament 3 (it has both CQC and vehicle combat) or Gotham City Impostors (which is free anyway).