The Braves (0-5) also lost right-hander Dan Winkler, who suffered a fractured right elbow while throwing a pitch in the seventh. He left the mound in obvious pain after throwing behind Randal Grichuk.
The Cardinals completed the three-game sweep despite a poor start from Adam Wainwright, who allowed five runs in five innings.
After rallying for a 7-6 lead in the eighth, the Cardinals put the game away with five runs in the ninth to score 12 runs for the second straight day. Aledmys Diaz hit a two-run double off Jose Ramirez in the ninth before Carpenter’s three-run homer.
The Braves’ last 0-5 start came in 1988 when they lost their first 10 games.
Moss’ homer capped the Cardinals’ four-run third inning for a 4-1 lead. Drew Stubbs’ three-run homer off Wainwright in the bottom of the frame tied the game.
Trailing 6-5, the Cardinals had four straight hitters reach base with two outs in the eighth against Jim Johnson (0-1). Jeremy Hazelbaker’s single drove in Matt Holliday, who began the rally with a pinch-hit single. Stephen Piscotty‘s single to right drove in Carpenter, who was hit by a pitch, to give the Cardinals the lead.
The Braves loaded the bases against Jonathan Broxton in the eighth. Cardinals closer Trevor Rosenthal struck out pinch-hitter Jeff Francoeur to end the inning. Rosenthal gave up one run in the ninth for his second save as the Cardinals completed their first sweep of three or more games at Turner Field.
Nick Markakis hit three doubles, including a ground-rule shot in the sixth that gave Atlanta a 6-5 lead.
Winkler struck out Cardinals rookie Jeremy Hazelbaker to end the sixth with the bases loaded. An inning later, Winkley held his right arm to his chest as he left the mound in pain. Walking toward the Braves’ dugout, he fell to his knees after crossing the first-base line. He was assisted to the dugout.
St. Louis right-handed reliever Seung Hwan Oh (1-0) had two strikeouts in a scoreless seventh.
The homer by Stubbs was the first allowed by the Cardinals this season. They were the last team in the majors to allow a homer.
Wainwright matched his career high with five walks, including one intentional.
Williams Perez gave up four runs in 4 2/3 innings for Atlanta.
The Braves placed center fielder Ender Inciarte on the 15-day disabled list with a strained left hamstring.
Atlanta also optioned right-hander John Gant to Gwinnett, recalled right-hander Chris Withrow from Gwinnett and agreed to terms on a minor league deal with utility player Emilio Bonifacio, who was assigned to Gwinnett. Bonifacio was designated for assignment by the Braves on April 2.
Withrow allowed one run while recording one out in the sixth.
Gant, who had a 12.00 ERA in three games, will work as a starter at Gwinnett.
Cardinals: Manager Mike Matheny said LHP Marco Gonzales, who began the season on the disabled list at Triple-A Memphis, is facing possible left elbow surgery. Gonzales has consulted two doctors. The type of surgery Gonzales is contemplating has not been disclosed. Gonzales was a first-round pick in 2013.
Braves: Withrow missed all of 2015 while recovering from elbow and back surgeries. He said it a relief to be back in the majors after “overcoming some obstacles … surgeries and setbacks.” … Winkler missed most of the 2015 season recovering from Tommy John surgery in July 2014.
Cardinals: RHP Michael Wacha will make his second career home-opening start on Monday against Milwaukee. Wacha also started the 2014 home opener. He is 2-0 with a 5.87 ERA in four career games, including three starts, against the Brewers.
Braves: RHP Bud Norris will start in Monday’s opener of a four-game series at Washington. Norris (0-1) allowed three runs in seven innings in a 3-1 home loss to the Nationals on Wednesday.