I've played Battlefield online. After playing Halo exclusively for months (a lot), the Battlefield felt a lot different, and worse. Maybe I didn't stick with Battlefield long enough, but while Halo is out there, there is no reason to play what I feel to be an inferior game in order to give it the chance.
I'm not talking about graphics. If you want to argue that Battlefield's graphics are better, you can have that one.
I remember Battlefield being way too anonymous. It didn't matter if I was in the game or not. People would always quit, and one team would have more people than the other. There were way too many people on each team to have a true sense of organization. Who's got 64 or 32 friends that can play online together at the same time? How can you have an organized effort like that?
Halo offers 16 on 16 if you want big games, but for my money even that is too many people. Halo's main course is Team Slayer, which is 4 on 4. In this game, each player is relied on heavily and can make the difference between a win and a loss. Stategy is much more important in Halo. You have to know where your teammates are and what weapons they are using.
You have to know every crevice of the maps and where the respawns are. And as months go by, certain strategies are proved to be better than others, and gamers learn what works and what doesn't on each map. Then you have to execute.
To me, playing Halo online has legs. I'm still playing it now and it's been years since the release. It's still fresh because of the amount of strategy and skill it takes to be good at it.
Battlefield just seems like a clusterfuck of chaos compared to Halo. If you play Halo online with strangers, you immediately know if someone on your team sucks and doesn't know how to play.