Well they both do very different things. BF3 is the better game if you like strategy and unit-level tactics, working in a team, large maps, longer matches and a lot of stuff going on.
MW3 is better if you like fast action, squad-level tactics, small maps, shorter matches and the action is concentrated on two or three hotspots.
Neither game is better or worse, they are both very good at doing those specific things.
Where MW3 really pips BF3 to the post is in the metagame. The challenges, the addictive leveling, the targeted unlocks, even whole 'Elite' thing- it all works better in MW3. It's easier to understand, you level more quickly, you have greater customization, the metagame itself is actually FUN. In between matches in MW3 I am looking at what challenges are next and tweaking my character to meet those challenges. In BF3 there is NO inter-game activity, the 'assignments' are long and often pointless (play 2 hours on Karkand? Okay, I'll just jump out of the match every time that round ends- oh wait, you can't until the next round begins) and the leveling is basically just 'get points by whatever means'- no specific challenges outside the assignments (and there are only five of them at any one time).
I hate to say it, because I actually prefer BF3's gameplay to MW3, but I always find myself booting up MW3 because the metagame is so much better.