Kelly went 5 1/3 innings, allowing four hits and a run. He became the first pitcher to have three hits in a spring training game since Chris Volstad did it for the Marlins in 2010.
Kelly singled three times, drove in two runs and scored twice.
The right-hander made 37 appearances for the Cardinals last season, including 15 starts, and went 10-5 with a 2.69 ERA. He pitched into the postseason and said he feels like a permanent part of the staff heading into the season.
"I went deep into the game," Kelly said. "I had some quick outs and that should always be a goal for me. I saw the whole lineup."
Kelly's outing was the longest by a St. Louis pitcher all spring.
"That was a great performance," manager Mike Matheny said. "He was trying to be a one-man show today. He was still throwing up to 95-97 (mph) in the sixth and he was still going after the hitters. I liked what I saw."
The Braves, still reeling from the possibility of beginning the season without ailing pitchers Mike Minor, Brandon Beachy and Kris Medlen, started non-roster invitee Gus Schlosser, who allowed three runs, two earned, and four hits in four innings. He struck out five and did not walk a batter.
Schlosser was expected to work out of the bullpen this season, but will likely stretch his arm out in Triple-A at the start of the year as an insurance policy for the rotation.
Information from The Associated Press was used in this report.