Which card is better?

the 5670 is quite a bit stronger. 45fps medium settings. the 3870 will be lucky to maintain 30 at low both on a 1440/900 screen.
honestly theough there both pretty pants for bf3 if you have a decent mid to high end cpu so i would save a little more and get a 560ti. if you only have mid to low say a low end i3 or core 2 quad then the 5670 will give reasonable returns for the money but the 3870 will always be weak.
You're probably going to need a new CPU if you want to play the game well. A Core 2 Duo at 2.4GHz barely meets the minimum system requirements. If you can't upgrade or overclock that CPU, I'd say just get the 5670. Most cards above the 5670 will be held back by your CPU.