ST. LOUIS _ The Cardinals pounded Atlanta's Mike Foltynewicz for eight runs and seven hits last week, but the Braves' right-hander was undaunted when he faced them again at Busch Stadium on Friday night.
Foltynewicz held the Cardinals to an unearned run on five hits over six innings and the Braves hit three home runs to post a 5-2 win.
Dansby Swanson and Freddie Freeman hit back-to-back homers in the sixth, and Swanson hit his second of the game in the eighth with a runner aboard.
Other than the two homers he allowed, Cardinals starter Miles Mikolas (4-5) was sharp, striking out nine to match his career high and walking none in his seven innings.
The Cards again followed a big offensive game with a dud, collecting only seven hits and scoring their only run before the ninth inning on a pair of misplayed fly balls. They scored 10 in their previous game, a win against Kansas City on Wednesday night.
The second run came on a Matt Carpenter home run in the ninth estimated at 442 feet.
The game was tied until Swanson homered to lead off the sixth, and Freeman followed with his 13th of the season to center field. Swanson's second homer and ninth of the year barely cleared the wall in center and required a review before it was confirmed.
The Braves got on the scoreboard first with a run in the third inning. The Cardinals tied the game in the bottom of the inning when Kolten Wong's fly ball was dropped by left fielder Austin Riley and Harrison Bader had his triple misplayed in deep center by Ronald Acuna Jr.
They missed a chance to take the lead in the seventh when Carpenter and Yadier Molina opened the inning with singles, marking the end of the night for Foltynewicz (1-3).
The Braves then threw out Molina at second base on an attempted sacrifice bunt by Kolten Wong. Bader struck out. And Jose Martinez ended the inning pinch-hitting for Mikolas with a fly out.
Dexter Fowler was 0 for 3 and struck out three times in his first game hitting leadoff. Carpenter, who was dropped to the No. 5 spot, went 2 for 4.