Well the price difference between the 670 and 7870 is roughly $40 depending on which model you go with of course - I know you stated you went over budget and at this point trying to shave off a few dollars helps. But specially for BF3 which favors Nvidia cards the 670 is a beast of a card and at least to me would justify the extra $40 +/-.
See the comparison here - 670 vs 7870:
http://www.anandtech.com/bench/Product/548?vs=598On that note, as far as my personal experience with the 7870, I get around 35-60fps depending on the map ( Back to Karkand maps yield lower FPS across the board) running on High with the exception of Textures set to Ultra, 2xMSAA, Anti-aliasing Post set to low, Motion blur off, Anisotropic Filter set to 4x and Ambient Occlusion set to HBAO running it on a 1650x1050 monitor.