MINNEAPOLIS (AP) — Rookie Trevor Larnach homered and Rob Refsnyder drove in two runs as the Minnesota Twins hung on to beat the Kansas City Royals 6-5 on Saturday.

Nelson Cruz had an RBI double in the first inning that drove in Josh Donaldson for a notable run — the 2 millionth scored in Major League Baseball history.

J.A. Happ (3-2) won for the first time in five starts, finishing five innings to set up the Twins for their seventh victory in the last nine games despite another late bullpen lapse.

“It feels good to win some games and string some together, for sure,” Happ said.

Jorge Alcala and Tyler Duffey pitched a perfect relief inning apiece for the Twins, combining for five strikeouts. Then a rally in the Royals eighth keyed by Hanser Alberto's leadoff double yielded a run off Hansel Robles.

Adalberto Mondesi hit his first home run of the season in the ninth, a two-run shot off Taylor Rogers to bring the Royals within one. Rogers deftly recovered with three straight outs to record his fourth save in six attempts.

Happ allowed only three hits in an important turn for the 38-year-old right-hander following a rough stretch. He surrendered 19 runs and 24 hits in 13 innings over his previous three starts.

“He was in command of what he was doing the entire afternoon,” Twins manager Rocco Baldelli said.

Salvador Perez hit a two-run homer off Happ, the 19th time the 31-year-old catcher has gone deep at Target Field. Perez, who served as the designated hitter, has the most home runs by a visiting player over the 12 seasons the downtown ballpark has been open.

“I just try to do my job every time we play, no matter what field we're on,” Perez said.

The Royals gave Ervin Santana (0-1) his second start of the season and turned to Carlos Hernández for a career-high 4 1/3 innings after that. Santana, the former Twins right-hander who did not pitch in the majors last year, was pulled after a leadoff walk in the fourth and was charged with three runs.

“We pushed him about as far as we could push him,” Royals manager Mike Matheny said.

Larnach hit his third homer of the season, a solo drive in the second, and reached base all four times he batted. Refsnyder has either tied the game or given the Twins the lead with five of his eight RBIs this year, since being summoned to fill in for an injury-ravaged outfield.

DUAL THREAT

Mondesi, who just rejoined the Royals this week after missing nearly two months with a strained right oblique muscle, recorded his 14th career game with a home run and a stolen base. Only Carlos Beltrán (25), Amos Otis (21) and George Brett (16) have more.

FILLING UP

The announced attendance was 18,444, the largest crowd of the season at Target Field, with the Twins currently operating at 60% capacity under relaxed COVID-19 protocols. They will be at 80% in June, before lifting the ticket sales limit in July.

ROUND AND ROUND

Donaldson has accounted for 685 of the 2 million runs in major league history. The first run ever recorded was on April 22, 1876, by Tim McGinley of the Boston Red Stockings. Bob Watson was credited with the 1 millionth run, scored for the Houston Astros on May 4, 1975.

TRAINER'S ROOM

Royals: RF Jorge Soler, who got two hits on Friday to stop a 0-for-21 slump, was removed after the first inning with discomfort in his right groin. ... Soler, Perez, Carlos Santana and Whit Merrifield have each played in all 50 games for Kansas City. Perez, who has taken 12 turns as the DH, said playing in all 162 games this year would be "a dream" for him.

Twins: RF Max Kepler left the game after the second inning with a mild left hamstring strain, an aggravation of an injury that has bothered him for the last two weeks, and he might need to go on the injured list. ... 2B/LF/3B Luis Arraez, on the IL with a strained right shoulder, has missed the last five games and will be sidelined for at least two weeks.

UP NEXT

Royals: RHP Brad Keller (4-4, 5.72 ERA) will take the mound for the final game of the series. He allowed seven runs in 4 1/3 innings in a May 2 loss at Minnesota.

Twins: RHP Matt Shoemaker (2-5, 5.48 ERA) will pitch on Sunday. He's coming off consecutive quality starts of six or more innings and three runs or fewer for the first time this year.

___

More AP MLB coverage: https://apnews.com/hub/MLB and https://twitter.com/AP_Sports