Atlanta let an early four-run lead get away, but battled back to win its second straight on the heels of an eight-game losing streak.
Tyler Greene's two-run single highlighted a four-run St. Louis sixth that lifted the Cardinals into a 5-5 tie.
The Braves responded in the bottom of the inning when Jose Constanza reached on a leadoff, infield single and scored on Wilson's double to right. Brian McCann and Dan Uggla produced run-scoring singles later in the inning.
Both sides scored twice in the eighth, with only one hit in the entire inning leaving the infield, and Craig Kimbrel survived a two-out fielding error in the ninth to collect his 15th save.
Reliever Mark Rzepczynski (0-3) gave up the three runs in the Atlanta sixth to take the loss.
Putin thinks Obama would save him if he were drowning
Administration delays decision on Keystone XL once more