The Yankees' DJ LeMahieu, center left, scores the winning run...

The Yankees' DJ LeMahieu, center left, scores the winning run on an RBI sacrifice fly by Luke Voit off Orioles relief pitcher Hunter Harvey, right, in the 10th inning of a game on Saturday at Yankee Stadium. Credit: AP/John Minchillo

The Yankees hardly played their best on Saturday. Oh, they pitched well — hard to do better than zero earned runs in 10 innings — but they made three errors, were 0-for-8 with runners in scoring position and left nine men on base.

But baseball’s 2020 extra-inning rules gave the Yankees a runner on second to start the bottom of the 10th in a tie game after Jonathan Holder kept the Orioles off the board in the top half.

And baseball’s 2020 schedule gave the Yankees the Orioles for the next-to-last time this season. Boy, do the Yankees love to play the Orioles, especially in the Bronx.

So it wasn’t a shocker when Luke Voit’s leadoff sacrifice fly drove in DJ LeMahieu to give the Yankees a 2-1 victory.

"It’s 2020, man," Voit said. "Things are weird."

The Yankees have won four in a row and have a nine-game home winning streak against the Orioles dating to last season.

But this one was not as easy as the previous three victories, in which the Yankees outscored their opponents 23-3.

"This game is like riding a surfing wave," Voit said. "You’ve just got to ride it. There’s going to be ups and downs of it. Eventually, stuff will go your way. But it’s hard sometimes because you can be so negative on yourself and you feel like everything’s not going your way. But you’ve got to be positive and remember to have fun. We play a little kid’s game and everybody can make this game a lot harder than it really is."

After a 5-15 stretch, the Yankees had been in danger of falling out of the final wild-card spot, but they have opened some breathing room on their closest pursuers (Baltimore, Detroit, Seattle), none of whom strike fear in the hearts of the Yankees anyway.

If their recent bad stretch is behind them, the Yankees can aim at loftier goals, such as second place in the AL East or perhaps even the top spot in the division before the regular season ends on Sept. 27.

"You never know," Voit said. "You’ve just got to trust it. But we’re finally . . . playing like New York Yankee baseball. Finally."

Debatable. But they’ll take it.

LeMahieu was the free runner at second when the bottom of the 10th opened. He moved to third on the first pitch of the inning, a wild one to the backstop from hard-throwing Hunter Harvey.

Voit, who hit two home runs and drove in six runs in Friday’s second game, fell behind 1-and-2 but won the eight-pitch at-bat, muscling a fly ball to deepish center that was caught by Cedric Mullins running away from the infield. LeMahieu tagged and scored without a throw.

"It was nice, obviously, with that first pitch being a wild pitch and getting him to third," Voit said. "All I had to do was get the ball in the air."

That gave Voit 37 RBIs in 46 games (he's played in 42).

In the top of the 10th, the Orioles just needed to do the same, but Holder — who was called on for the inning instead of struggling Adam Ottavino — didn’t let them.

With the extra runner on third, one out and the infield in, Holder (3-0) got Mullins to line out to second baseman Tyler Wade. Holder then retired Hanser Alberto on a high, shallow fly ball to left.

"Holder doing a great job there, keeping them from scoring there in the 10th," manager Aaron Boone said. "Really another great effort by the pitching staff."

The Yankees have allowed six runs in their last five games. In the four-game winning streak, their starting pitchers have a 1.09 ERA and a 0.61 WHIP, with 29 strikeouts and two walks allowed in 24 2/3 innings.

Starter Jordan Montgomery was charged with one unearned run and set a career high with nine strikeouts in 5 2/3 innings.

LeMahieu led off the first with a double off the left-centerfield wall against rookie righthander Dean Kremer. He alertly tagged up and advanced when rightfielder DJ Stewart robbed Voit of a hit and scored on Clint Frazier’s sacrifice fly to right.

The Orioles tied it in the sixth. Alberto singled to left and moved to second when the hit bounced off Brett Gardner’s glove for an error. Alberto went to third on a fly ball to right, which forced Boone to bring the infield in.

Ryan Mountcastle followed with a pop fly that would have been eaten up by second baseman Thairo Estrada if the infield had been at normal depth. But with Estrada in, the ball fell for a tying single off his outstretched glove as he tried for an over-the-shoulder catch.

SUBSCRIBE

Unlimited Digital AccessOnly 25¢for 6 months

ACT NOWSALE ENDS SOON | CANCEL ANYTIME