KANSAS CITY, Mo. -- Adalberto Mondesi homered and stole a base for the third consecutive game, Kyle Zimmer got his first career win after a winding path to the major leagues and the Kansas City Royals beat the Pittsburgh Pirates 7-4 on Saturday night.
Whit Merrifield added a solo homer and the Royals won their fifth straight game. It was the third consecutive loss for Pittsburgh.
Mondesi and Bobby Abreu in 2004 are the only players to homer and steal a base in three straight games since at least 1901, according to MLB.com.
"He just continues to take great at bats and making things happen," manager Mike Matheny said.
Zimmer (1-0) pitched 2 1/3 scoreless innings, allowing a hit and a walk and striking out one. The 28-year-old was the fifth overall pick in the 2012 draft by Kansas City but didn't debut in the majors until last season due to recurring shoulder issues that threatened to end his career.
"I just got a bunch of milk and barbecue sauce dumped on me," Zimmer said. "It's hard to look back and it's been a long road with a lot of years of grinding, but I just try to stay in the moment."
After struggling through 15 outings last season in his first taste of the majors, Zimmer owns a 1.35 ERA in 13 appearances this season.
Zimmer relieved Carlos Hernandez after the right-hander allowed solo homers by Josh Bell, Bryan Reynolds and Adam Frazier.
"I thought he had really good stuff today," Matheny said. "Even his misses were close misses and there's a few things he needs to continue to work on."
Greg Holland pitched the ninth for his fifth save.
Mondesi tied it at 3 with his two-run homer in the third inning. He has four homers in the past six games after failing to hit one in the first 41 games of the season.
Trevor Williams (1-7) took the loss for the Pirates, allowing 10 hits and six runs in five innings.
"It's just the consistency of execution," Pirates manager Derek Shelton said. "We see it in stretches and then he loses it during the game. We got to get him back on track executing in his zone."
Merrifield led the bottom of the first off with a home run, his ninth on the year.
Salvador Perez hit an RBI single that scored Mondesi after he singled and stole second to put the Royals up 4-3. Olivares and Gordon also had RBI in the fifth to extend the lead to 6-3.
Nicky Lopez picked up an RBI in the seventh off Kyle Crick who walked two batters and gave up two hits in 2/3 of an inning.
Scott Barlow allowed one run on an RBI by Frazier
The game was pushed back 30 minutes after an armed man fired shots at nearby Arrowhead Stadium from the parking lot. The suspect was taken into custody.
Royals: Before the game, INF Kelvin Gutierrez returned from the IL, OF Nick Heath was recalled while INF Ryan McBroom was optioned and INF Matt Reynolds was designated for assignment.
RHP Chad Kuhl (1-1, 3.38) starts Sunday's matinee for the Pirates against RHP Brad Keller (3-2, 2.60). Keller gave up four runs in 6 2/3 innings in his last outing against the Indians.