Depends on what you want. I have both, and they're both good games in their own areas. If you want great single player, go with MW3. BF3's single was meh at best, but MW3's single is great, in my opinion.
As far as multi goes, I personally like BF3's alot better, but that'll depend on what you like. Basically, if you liked Modern Warfare 2, and want more of the same but with more polish, you'll like MW3, and it is a lot of fun. But if you're into objective-based gameplay or vehicle gameplay, I'd go with BF3.
Ideally, rent them both and see which one you like, because they are NOTHING alike.
P.S. Actually, if you're looking for single player, don't go with either, since BF3's isn't worth 60 bucks, and MW3 you can shoot through in six hours, easy.