I've played and own both. To me they both have quite a short and limited SP. MP is where both games shine.
CoD is still better if you like the fast paced, 'run and gun' or 'spray and pray' type of gameplay. with silly killstreaks going off every 10 seconds and that hectic 'headless chicken' style of MP.
BF3 is far more team oriented and actually is a lot better if played with friends whilst using some kind of voice communication like Mumble, Ventrillo or Teamspeak 3. If you try to play BF3 like CoD you will be cut down, its far more 'real' by you need to go from cover to cover, pick your shots etc etc.
CoD you could have a quick game on where as BF3 you tend to play it for a longer.
I wouldn't say either are anything massively different to the last version of each game (Black Ops and BF2/BFBC2)
I'd actually recommend if you want a CoD game for MP, then get either Modern Warfare (CoD4) or if you want a newer one, then its Black Ops. Why? Because the Multiplayer side is a far more rewarding game to play than MW3 will ever be.
Thats my take on it.