Matt Carpenter homered to start a ninth-inning rally and Yadier Molina ended it with a single to drive in the winning run, lifting the St. Louis Cardinals to a 3-2 victory over the Chicago White Sox on Tuesday night.

St. Louis snapped a three-game losing streak.

Carpenter tied it at 2 with a leadoff homer off White Sox closer Joakim Soria (0-1). It was Carpenter's 100th career home run and his first since April 10.

With one out, Marcell Ozuna doubled off the right-field wall. Molina then singled to left field to score Ozuna.

Bud Norris (1-0) picked up his first win of the season with a perfect ninth.

The White Sox wasted a good start by James Shields, who pitched six strong innings after giving up a leadoff home run.

Tommy Pham hit a 3-2 fastball off him for a 454-foot home run into the left-field seats. It was his first leadoff homer in his career and the second this season for St. Louis.

Shields retired the next 15 batters before giving up a single to Kolten Wong in the sixth. He allowed just two hits. Shields, who has not won since opening day, struck out four and did not walk a batter.

The White Sox scored twice in the fourth to take the lead. Trayce Thompson and Adam Engel drew one-out walks. After Shields struck out, Yoan Moncada doubled home both runners. His sinking fly ball got past Ozuna, who was trying for shoestring catch.

Michael Wacha pitched five innings in his second career appearance against the White Sox. He walked three and allowed hits.

The Cardinals ran themselves out of a scoring chance in the seventh.

Against reliever Bruce Rondon, St. Louis had a runner at third with one out. Ozuna hit a hard to grounder to Jose Abreu, who threw home to nail Carpenter trying to score.

ROSTER MOVE

The St. Louis sent right-hander reliever Mike Mayers to Triple-A Memphis and called up first baseman Luke Voit, a St. Louis native. The 27-year-old began this season on the disabled list with an oblique strain. He was batting .205 in 12 games at Memphis following his return. As a rookie in 2017, Voit batted .246 with four home runs and 18 RBIs. Mayers is 0-0 with a 1.35 ERA and one save in four relief appearances covering 6 2/3 innings this season.

MILESTONES

Tuesday's game was manager Mike Matheny's 1,000th with the Cardinals. He is just the fourth manager to pilot the club in 1,000 or more regular-season games. Matheny succeeded Hall of Famer Tony LaRussa as skipper in 2012. In his first four seasons, the Cardinals reached postseason play. St. Louis reached the World Series in 2013. ... Catcher Yadier Molina tied Hall of Famer Johnny Bench at 1,742 games for 16th in career games caught.

TRAINER'S ROOM

White Sox: RHP Danny Farquhar continues to show progress after his April 21 surgery for a brain aneurysm. He has taken a few short walks with his wife, Lexie. He is listed in neurologically stable condition ICU for next few weeks.

Cardinals: RHP Adam Wainwright (elbow inflammation) played catch before the game. "If all goes well and he feels good, he is scheduled to throw a bullpen tomorrow," said John Mozeliak, the team president. "We just have to be smart about this."

UP NEXT

White Sox: Lucas Giolito (1-3, 7.71 ERA) will be making his first career appearance against St. Louis. He snapped a three-game losing streak in his last start against Kansas City.

Cardinals: Carlos Martinez (2-1, 1.43 ERA) will be facing the White Sox for the first time. He has had consecutive no-decisions in his last two starts. The Cardinals have won each of his last five starts since opening day.

More From KHMO-AM 1070, News-Talk-Sports