Keller (4-2) was in total command, allowing only three hits until the ninth inning.
''I just wanted to do this for our bullpen,'' he said. ''I felt like we used their aggressiveness to our advantage and it was just fun today.''
Making his 55th career start in the big leagues, he struck two, walked one and threw 111 pitches. It was his second complete game in the majors.
''He was so in control today,'' Royals manager Mike Matheny said.
So few strikeouts ''means trusting the guys behind him. This is a big deal for our pitchers and I think it sends a message to the rest of our staff,'' Matheny said.
Salvador Perez and Hunter Dozier homered to help Kansas City win its second consecutive series after losing its previous eight. Pittsburgh lost its fourth game in a row.
''They're playing well right now,'' Pirates manager Derek Shelton said. ''They're coming off a sweep of Cleveland, one of the best teams in baseball and they're doing a nice job. They're creating a lot of opportunities for themselves, their bullpen is pitching well.''
The Royals thrived off Chad Kuhl (1-2) who couldn't find the strike zone. He walked six, helping set up nine runs in 2 1/3 innings. Only 31 of his 70 pitches were strikes.
After giving up a single in the third, he walked three of the next four batters and was yanked. Nick Tropeano relieved him and proceeded to walk Nicky Lopez, then give up a two-run single to Whit Merrifield that made it 9-0.
Seven Royals starters had an RBI with Merrifield and Salvador Perez both having a pair.
Maikel Franco drove in a run in the first inning after singles by Merrifield and Perez. Alex Gordon also tacked on an RBI later in the inning.
The Pirates caught a bad break on the next batter when a wild pitch ricocheted off the home plate umpire nearly into the Royals dugout. Dozier and Alex Gordon both scored on the play.
''We tell our guys to keep thinking about the next base,'' Matheny said. ''Just a smart play by Hunter.''
Pirates: Begins a four-game series against Cincinnati including a doubleheader on Monday.
Royals: Have the day off on Monday before facing Detroit for a two-game series. They haven't played the Tigers since July.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Copyright 2020 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.