Jeff Curry-USA TODAY Sports

Willson Contreras hit two homers, drove in three runs and scored three times as the St. Louis Cardinals edged the visiting San Diego Padres 6-5 in 10 innings on Tuesday.

Pinch hitter Tommy Edman supplied the game-winning single in the 10th for the Cardinals, who snapped a four-game losing streak.

St. Louis starting pitcher Zack Thompson allowed three runs (two earned) on five hits and four walks with three strikeouts in four innings. JoJo Romero (4-1) blanked the Padres for the final two innings to earn the victory.

Jose Azocar had two hits and two runs, Matthew Batten went 4-for-4 with a walk and two runs and Luis Campusano homered for the Padres, who lost for the fourth time in five games.

Padres starting pitcher Seth Lugo gave up three runs (two earned) on six hits and a walk in six innings. He fanned six. Josh Hader (0-2) pitched the 10th inning and took the loss.

San Diego's He-Seong Kim opened the game with a single. Juan Soto's bunt single and a throwing error sent Kim to third base, and Fernando Tatis Jr.'s sacrifice fly made it 1-0.

Jordan Walker and Masyn Winn hit singles to start the St. Louis third, but Walker was picked off second base on a botched bunt attempt. Paul Goldschmidt drew a two-out walk, and Nolan Gorman hit an RBI single to tie the game 1-1.

The Padres took a 3-1 lead in the fourth inning when Campusano walked with one out, Batten hit a double and Azocar's single drove them home.

The Cardinals got a run back in the bottom of the inning. Contreras reached on an error, took third on Alec Burleson's ground-rule double and scored on Walker's sacrifice fly.

Campusano's homer in the sixth inning increased San Diego's lead to 4-2, but Contreras cut the lead in half with a homer in the bottom of the frame.

San Diego increased its margin to 5-3 in the eighth inning. Batten hit a one-out double, moved to third on Azocar's single and scored on Kim's sacrifice fly.

The Cardinals tied the game in bottom of the inning on Goldschmidt's leadoff single and Contreras's two-out, two-run homer.

More must-reads:

TODAY'S BEST
Victor Wembanyama's latest honor puts another spotlight on his greatness
Lamar Jackson reportedly made significant physical change for 2024
Dolphins safety appears to take a shot at former DC
Ryan Leaf goes off on top NFL insider, accuses him of being a fraud
Report: TNT is still fighting to save its NBA rights
Lightning re-acquire defenseman from Predators
Steelers star DT blasts reporter's 'bold face lie'
Deadline for LeBron James' contract decision revealed
Jets HC Robert Saleh shares significant update on Aaron Rodgers' health
Steelers add another veteran to running back room
Charvarius Ward names positive 49ers can take from Super Bowl loss
Dolphins' Tua Tagovailoa reportedly makes physical change amid contract talks
Do Oilers need more from Connor McDavid to get to Stanley Cup Final?
All-Rookie teams show gems available all over draft
The NBA has not witnessed this much parity in 50 years
Knicks expected to be 'aggressive' in upgrading their roster
Drew Bledsoe offers advice for Patriots rookie QB Drake Maye
2024 AFC revenge games: Brothers, 'Stefon Diggs Bowl' to take center stage
2024 NFC revenge games: Which game should Cowboys, others have circled?
How All-Star Race victory could turn Joey Logano's season around

Want more MLB news?

Join the hundreds of thousands of fans who start their day with Yardbarker's Morning Bark, the best newsletter in sports.