Check out my $650 build here:http://www.squidoo.com/electronicandmore#module146695821
Per your price point, it'd be better to get a better GPU rather than CPU. The 7870 will run those games easy on High settings and the FX-6300 can keep up. Another thing, the FX-6300 can overclock, something that Intel chips around its price point cannot offer which gives it a slight performance boost if you wanted to.
What I'm talking about:
In BF3 or highly graphics intensive games, the performance difference at 1080P cannot even be noticed. http://www.hardwareheaven.com/reviews/1598/pg6/amd-fx-8350-processor-review-battlefield-3.html
As you can see, in BF3 the FX-8350 performs as well as the i5 3570K, also in terms of performance the FX-8350 is great especially in daily apps.