First you need a new power supply. I have a 560ti 448 core and a i5 2500k and I can play BF3 on ultra with 35-40 fps. Anandtech benched the radeon 7850 at 32fps 1920x1200. and it is about $35 cheaper. if you want more performance than that step up to a 7870. You need at least a 500W PSU I recomend a corsair TX(I have one) Sesonic XFX and Antec are also good brands I have heard. For video card brand XFX cards look cool to me and have the best wearranty in AMD land.
I would recommend getting a rosewell green 530w or 630w PSU because a higherend GPU will use more power and I assume yours is prebuilt, so it more than likely has a pretty flimsy PSU preinstalled, I have had good experiences with the 20+ rosewell green PSUs I've ordered, their cheap, they have good amp ratingis, 80+ certs, and THEY WORK!!!
as for GPU I would go with ominous suggeustion of the 560TI 448 core oro 7850,7870, if you can't afford those cards then I highly recommend a EVGA 560 SE for $120 on newegg, it works REALLY well for that price and you will be able to play BF3, not max setting of course but it will still look prettty nice as well as very playble
If you get $200 you would have a nice gaming pc with a new video card and psu. without a psu upgrade get a radeon hd 7750 and you will be able to play most games on medium and high settings.