Tommy Gilligan-USA TODAY Sports

Bailey Ober allowed two hits over seven shutout innings, Joey Gallo homered and the visiting Minnesota Twins held on to defeat the Baltimore Orioles 1-0 on Saturday.

It was Gallo's second homer in two games and 15th of the season. Max Kepler had two hits for Minnesota.

Ober (5-4) allowed just a pair of singles, while striking out eight batters without a walk and hitting one batter. It was the second time this season that Ober went seven innings without giving up a run.

Griffin Jax worked a scoreless eighth and Jhoan Duran pitched an eventful ninth for his 12th save.

Adley Rutschman reached via an infield hit with one out in the ninth. Pinch runner Jorge Mateo then stole second. Mateo was originally called out, but Baltimore challenged, and the call was overturned. Anthony Santander followed with a drive down the rightfield line, where right fielder Kepler made a diving catch in foul territory, and Ryan O'Hearn grounded out.

The Orioles, losers of four straight games for the first time this season, have managed one run and seven hits in the first two games of the series.

Baltimore starter Kyle Bradish (4-4) nearly matched Ober, giving up one run on seven hits over six innings. He struck out seven and walked one.

After Gallo walked, the Twins had runners on first and second with two outs in the second, but Bradish struck out Michael A. Taylor.

In the Minnesota third, Carlos Correa led off with a single. Byron Buxton hit a drive to left, but Austin Hays raced to his right and made a diving catch. Alex Kirilloff followed with a single, but Bradish retired Royce Lewis, who appeared to grab at his side while running to first and left the game.

Gallo broke the scoreless tie when he homered to right center with two outs in the fourth.

Kyle Farmer singled and went to second on a wild pitch with one out in the Minnesota sixth, but Bradish pitched out of trouble.

Santander singled leading off the Baltimore seventh, but Ober retired the next three batters without allowing Santander to advance.

More must-reads:

TODAY'S BEST
Watch: NASCAR drivers exchange punches after crash in All-Star Race
Knicks star offers passionate defense of HC Tom Thibodeau after Game 7 loss
Xander Schauffele proves doubters wrong with historic win at 2024 PGA Championship
Canucks won't have linchpin forward for Game 7 vs. Oilers
Pacers ride historic shooting performance to Game 7 blowout of Knicks
Watch: Aaron Judge blasts 13th home run in Yankees' seventh straight win
Knicks' Jalen Brunson suffers serious injury in Game 7 vs. Pacers
Phil Foden lifts Manchester City to fourth consecutive English Premier League title
Dodgers add recently acquired left-hander to active roster
Report: 2023 No. 7 pick expected to terminate KHL contract, join Flyers
Mavericks advance to Western Conference Finals aided by controversial call late
Connor McDavid, Oilers hammer Canucks to force Game 7
Tyson Fury-Oleksandr Usyk epic increases excitement for potential rematch
Seize the Grey wins in muddy Preakness
Even Mike Budenholzer admits the Suns need a point guard
Watch: Juan Soto's first multi-homer game as a Yankee
Xander Schauffele, Collin Morikawa lead at PGA Championship
Knicks could get major boost for Game 7 showdown with Pacers
Giants All-Star pitcher suffers setback in recovery from injury
Panthers star named winner of 2024 Selke Trophy