Orlando Ramirez-USA TODAY Sports

Pinch-hitter Ji Man Choi drove in the tiebreaking run with a sacrifice fly as the San Diego Padres rallied for two runs in the seventh inning to defeat the visiting Colorado Rockies 3-2 Wednesday afternoon and complete a three-game sweep.

The Padres extended their longest winning streak of the season to seven straight games.

The Rockies had held onto a 2-1 lead since the first inning.

Juan Soto opened the Padres' seventh by drawing his major league-leading 126th walk. After Rockies starter Chase Anderson retired Manny Machado on a long fly to center, Garrett Cooper beat out an infield single to short.

Justin Lawrence replaced Anderson and was greeted by a bunt single up the third base line by Matthew Batten that loaded the bases. Pinch-hitter Luis Campusano then dropped a game-tying single to short right, Soto scoring just ahead of right fielder Sean Bouchard's throw to the plate for a possible forceout.

Choi then drove a sinker to deep center easily scoring pinch-runner Trent Grisham from third as Rockies center fielder Brenton Doyle made an over-the-head catch on the warning track. It was Choi's first RBI with the Padres.

Luis Garcia (2-3) worked a scoreless top of the seventh to earn the win. Josh Hader picked up his 31st save, getting Brendan Rodgers on a game-ending fly to right with the tying run on third. Hader had a win and two saves in the sweep.

Anderson took the loss to fall to 0-6 despite allowing three runs (two earned) on five hits and two walks with three strikeouts in his first outing since pitching seven no-hit innings against the Cubs.

The Rockies scored two runs in the first off Padres starter Seth Lugo. Rodgers hit his first homer of the season with one out. Nolan Jones followed with a single and came around on singles by Ryan McMahon and Ezequiel Tovar.

The Padres got a run back in the bottom of the first. Xander Bogaerts opened with a single, stole second, moved to third on a throwing error by catcher Austin Wynns and scored on a groundout by Soto.

Lugo gave up two runs on seven hits and two walks with seven strikeouts over six innings.

More must-reads:

TODAY'S BEST
Yankees' Juan Soto reacts to Hal Steinbrenner contract talk
Scottie Scheffler arrested, will still make PGA Championship tee time
Timberwolves chew up Nuggets to force Game 7
Rangers secure spot in conference finals after stunning third-period comeback over Hurricanes
Xander Schauffele makes history in first round of PGA Championship
Yankees' Hal Steinbrenner shares massive Juan Soto contract update
Steelers' Cameron Heyward addresses contract holdout
Knicks star ruled out for potential closeout game
Dodgers starter undergoes season-ending UCL surgery
Clemson’s Dabo Swinney gives smug response about not using transfer portal
Caitlin Clark's debut was most-watched WNBA game in more than 20 years
Watch: Chris Kreider's natural third-period hat trick shatters Hurricanes' comeback hopes
Veteran NFL safety will either play for this team or retire in 2024
Former Red Wings head coach linked to open NHL job
How Patriots' Drake Maye has already impressed Jacoby Brissett
LeBron James, Giannis Antetokounmpo, Stephen Curry among Forbes' highest-paid athletes for 2024
Steve Cohen addresses if Mets could again be trade-deadline sellers
Tiger Woods ruins strong first round with sloppy finish at PGA Championship
NFL responds to speculation about Chiefs schedule and Taylor Swift
Despite hopes for change, NASCAR championship weekend will return to Phoenix in 2025