ATLANTA — Justin Upton homered and scored the tiebreaking run on Chris Johnson's eighth-inning single, and the Atlanta Braves beat the St. Louis Cardinals 2-1 on Tuesday night to end their seven-game skid.
Braves right-hander Gavin Floyd was impressive in his season debut, allowing one run on six hits in seven innings.
Floyd made his first major league start since April 27, 2013, for the White Sox against Tampa Bay. He had season-ending Tommy John surgery 10 days later, and his comeback included six minor league rehab starts this year.
David Carpenter (2-0) had two strikeouts in a perfect eighth. Craig Kimbrel had two strikeouts in a perfect ninth for his ninth save.
St. Louis left-hander Tyler Lyons allowed only one run on four hits, including Upton's homer, in six innings.
With one out in the eighth, Justin Upton singled to center. Freddie Freeman followed with a liner that bounced off the leg of Randy Choate (0-1) and bounced to third baseman Matt Carpenter for an infield hit.
Right-hander Pat Neshek gave up Johnson's single to right field that drove in Upton and allowed Freeman to advance to third. The Braves had to settle for one run when Gerald Laird struck out on a botched suicide squeeze and Freeman was out on a rundown.
Lyons retired the first 10 Braves before Upton snapped a 0-for-12 streak with his team-leading ninth homer in the fourth. Upton's drive deep into the seats in left-center gave the Braves their first lead in almost a week. They took a 4-3 edge in the sixth inning of Thursday's 5-4 loss at Miami.
The Cardinals tied it in the sixth. Matt Holliday's single to right-center drove in Carpenter, who led off with a walk.
Floyd made the start originally planned for Ervin Santana, whose spot was skipped due to his swollen right thumb. Santana is listed as the probable starter against the Cubs on Saturday.
Braves manager Fredi Gonzalez stayed with the structure of the revamped lineup he unveiled on Monday in an attempt to snap the losing streak and hitting slump. For the second straight game, shortstop Andrelton Simmons hit ninth, one spot behind the pitcher. After sitting out Monday's game, Dan Uggla returned as the starting second baseman and hit seventh, and Justin Upton again hit second.
"I don't want to go back to the normal, traditional lineup," Gonzalez said. "If we're going to make this commitment and make this radical change, let's stay with it and see what happens."