PITTSBURGH -- Jacob Stallings has 19 hits in parts of three major league seasons, and the rookie third-string catcher has made a some of them count.
It was Stallings' second career game-ending hit. The catcher also had one on Sept. 23, 2016, against Washington as a pinch hitter.
After Jordan Luplow grounded into a double play, Kevin Kramer walked and moved to second on Kevin Newman's single. Stallings then singled into left field off Ben Lively (0-3) for his third hit of the game, scoring Kramer.
Stallings was not in the original lineup. He was told 2 1/2 hours before the game he would be subbing for ailing Francisco Cervelli.
"It was pretty similar to my other one, same spot and same kind of pitch," Stallings said. "It was good to help the team on short notice. It was fun to come through for the guys."
Stallings has spent the last three years shuttling between Pittsburgh and Triple-A Indianapolis while stuck on the organizational depth chart behind Cervelli and Elias Diaz.
"The biggest thing for me is staying ready," said Stallings, whose father, Kevin, was the University of Pittsburgh's basketball coach for two seasons before being fired in March. "On a day like today, when I'm not ready to play, I'm still ready. You get paranoid because you never know what might happen."
Stallings has made a good impression on Pirates manager Clint Hurdle.
"He puts his foot down early and hits the ball hard where it's pitched. Old-school hitting," Hurdle said. "He's done a very professional job on everything he's done."
The Pirates scored twice with two outs in the eighth inning to tie the game at 6-all. The first run scored when first baseman Ryan O'Hearn failed to handle a throw from third baseman Hunter Dozier on a grounder by Pablo Reyes. Starling Marte followed with an RBI triple.
Newman had three of Pittsburgh's 16 hits as the rookie shortstop extended his hitting streak to six games and helped the Pirates win for the ninth time in 12 games.
Edgar Santana (3-3) pitched a 1-2-3 ninth.
O'Hearn led off the top of the eighth with his 11th home run in 36 games since making his debut July 31 and gave the Royals a two-run lead.
Josh Bell drew Pittsburgh to 5-4 in the seventh with a run-scoring single.
Gordon doubled in the game's first run in top of the third inning and Corey Dickerson countered with an RBI single in the bottom half. Adam Frazier's two-run single in the fourth gave the Pirates a short-lived 3-1 lead.
Keller got his first major league hit when he singled off Musgrove to lead off the fifth inning. It came in Keller's second career at-bat after he struck out in the second.
Keller was in line for his team-high ninth win until the Royals squandered the lead. He was selected from the Arizona Diamondbacks in the Rule 5 Draft in December after having never pitched above Class A.
"He got us into the seventh and did a great job of doing that," Kansas City manager Ned Yost said. "He threw the ball really, really well. He put us in position to win."
O'Hearn's homer to right field off Steven Brault was the first allowed by the left-hander in 117 career plate appearances against left-handed batters.
Pirates: 2B Frazier (right knee discomfort) left for a pinch-runner immediately after hitting his double. . Cervelli (flu-like symptoms) was on deck ready to pinch-hit when Stallings delivered the game-winning hit. . Diaz (strained right hamstring) has been cleared to play after sitting out since Aug. 31. . Pitching coach Ray Searage underwent cervical surgery and assistant pitching coach Justin Meccage is taking his place.
AND 31 YEARS LATER .
Royals 2B Whit Merrifield played his first game in Pittsburgh. Merrifield's father, Bill, was called up by the Pirates for one day late in the 1987 season then sent to instructional league to make the conversion from third baseman to first baseman.
Bill Merrifield did not appear in a game and never returned to the major leagues.
A moment of silence was held for rapper/singer Mac Miller, who died last week. Miller was a Pittsburgh native and Pirates' fan.
Royals: LHP Eric Skoglund (1-5, 6.19) makes his third appearance and second start Tuesday night since being sidelined from May 26-Sept. 6 with a sprained ligament in his left elbow.
Pirates: RHP Jameson Taillon (13-9, 3.37) has allowed three earned runs or less in 19 straight starts.
More AP MLB: https://apnews.com/tag/MLB and https://twitter.com/AP-Sports
Villar cranks 3-run HR to tie game for Mets
Jonathan Villar hits a three-run home run to right field to tie the Mets with the Marlins at 3-3.
Darvish Ks 4 in Padres spring debut
Yu Darvish strikes out the side in the first and finishes with four strikeouts in his Padres debut.
Gardner's grand slam is all the Yankees need to top Phillies
Brett Gardner smacks an early grand slam vs. the Phillies to put the Yankees on the board on Sunday in spring training action.
Francona announces Ramirez and Reyes broke COVID-19 protocols
Indians manager Terry Francona details how Jose Ramirez and Franmil Reyes came forward about breaking MLB's COVID-19 protocols.
Washington Nationals release Jeremy Jeffress for unspecified 'personnel reasons'
The Nationals released reliever Jeremy Jeffress on Sunday for what general manager Mike Rizzo called unspecified "personnel reasons."
Cleveland Indians' Jose Ramirez, Franmil Reyes break COVID-19 protocols, away from team
Indians third baseman José Ramírez and slugger Franmil Reyes have been isolated from their teammates at spring training after breaking COVID-19 protocols.