Trevor Rosenthal couldn't remember the last time he'd earned a save — nearly three years ago.

“It's been a while,” he said.

That drought is finally over after Rosenthal pitched a scoreless ninth inning Thursday night in Kansas City's 5-3 victory over the Detroit Tigers. The Royals overcame Miguel Cabrera's first multihomer game since 2016.

CLICK HERE FOR MORE SPORTS COVERAGE ON FOXNEWS.COM

Once a standout closer for St. Louis, Rosenthal has struggled with his health and his effectiveness in recent years, finishing 2019 with a 13.50 ERA in 22 appearances with the Nationals and Tigers. When he retired JaCoby Jones on a grounder to end the game, he gave his glove a little celebratory tap.

“I’ve just always focused on putting in the work," Rosenthal said. "I’ve been fortunate that a lot of people have given me opportunities even when I’ve been struggling.”

It was his first save since Aug. 12, 2017, when he was with St. Louis.

The Royals have scored 25 of their 31 runs this year in the first five innings, but this time their offense came through late. Whit Merrifield scored on Salvador Perez’s grounder to break a 2-all tie in the seventh. Bubba Starling added a double the following inning that gave Kansas City two insurance runs.

“Great jump by Whit on the contact play,” manager Mike Matheny said. ”Then Bubba gets a chance to put an exclamation point on it right there. We needed those runs, obviously.”

Cabrera hit solo homers in the first and eighth, and Jonathan Schoop added one for Detroit in the fourth. It was Cabrera's first multihomer game since Sept. 30, 2016 at Atlanta, and he's gone deep three times in the first seven games this year after hitting only 12 home runs in all of 2019. He now has 480 for his career.

“He’s the smartest hitter in the game, no question about it,” said Ivan Nova, Detroit's starting pitcher. “He has the timing, the intelligence and everything. He’s still getting a little bit older, but he’s still smart.”

Greg Holland (1-0) won in relief for the Royals, and Jose Cisnero (1-1) took the loss.

Brady Singer allowed two runs and five hits in five innings for Kansas City in his second career start. Nova went 5 2/3 innings, allowing two runs and eight hits.

Ryan O'Hearn opened the scoring in the top of the first with an RBI single, and Franchy Cordero hit a run-scoring single in the second to put the Royals up 2-1.

After six hits in the first three games of the series, Merrifield didn’t have any Thursday, but he still made an impact. He was hit by a pitch with one out in the seventh, then went to third on Jorge Soler’s double.

Perez hit a bouncer up the middle that was fielded by Schoop, the second baseman. Merrifield scored, although Schoop threw to third to retire Soler.

Starling's double down the line in left field made it 5-2.

IN CONTROL

The Tigers went a third straight game without walking anybody — the first time they’ve done that since April 13-15, 2015.

TRAINER'S ROOM

Tigers: OF Cameron Maybin left after beating out an infield hit in the ninth. Manager Ron Gardenhire said Maybin had a strained quad and would go on the injured list.

UP NEXT

LHP Kris Bubic makes his big league debut for the Royals when he starts their home opener Friday night against Chicago. LHP Dallas Keuchel takes the ball for the White Sox.

Detroit starts a home series against Cincinnati, with RHP Spencer Turnbull (0-0) facing RHP Luis Castillo (0-0) of the Reds.