KANSAS CITY, Mo. — The absence of fans in the stands figured to steal a great deal of the thunder from Mike Moustakas' return to Kansas City.


The thief actually turned out to be Royals right-handed pitcher Brad Keller.


Keller flirted with a no-hitter in an abbreviated seven-inning game and relegated the entire Cincinnati Reds' lineup, Moustakas included, to a footnote as the Royals won, 4-0, in the first half of Wednesday doubleheader at Kauffman Stadium.


Keller extended his streak of scoreless innings to 17 2/3 to start this season, though Moustakas did have one of the three hits he allowed in the game.


Keller (3-0) held the Reds hitless through five innings as Cincinnati batters repeatedly beat the ball into the dirt. Of the first 11 outs recorded on balls in play against Keller, eight were grounders.


"He was special," Royals manager Mike Matheny said. "I think he got into a rhythm where his breaking ball was just as good as his fastball was. He had his fastball going towards both sides of the plate. He had it cutting at times. He had good sink when he needed. He got his double plays. Guys played well behind him, (Adalberto Mondesi) with a couple really nice plays. And he wasn't afraid to even go to that change-up."


Whit Merrifield and Jorge Soler had two hits apiece, while Ryan O'Hearn drove in two runs. Soler snapped out of a funk that included going 3 for 23 on the club's recent road trip.


Keller pitched 6 2/3 innings, striking out five in the first five and walking three. He issued a walk to start the seventh but quickly got a double play to wipe it away. After Keller gave up back-to-back hits to Moustakas and Shogo Akiyama, Matheny brought in reliever Trevor Rosenthal to close the door.


The Reds (9-12) loaded up their lineup with six left-handed hitters, save for switch-hitter Freddy Galvis, against Keller. Entering the day, lefties had a .348 on-base percentage against Keller compared to a .158 OBP for right-handed hitters.


"Obviously it's pretty glaring when you see all lefties in there," Keller said. "I knew I had to rely on my four-seam and slider today. ... It was good stuff to work on. I had to kind of control the inside part and up, too. It was a little bit of a challenge, no doubt. But I liked it and I enjoyed it."


The Royals showed a video montage of Moustakas' highlights from his time with the club on the Crown Vision video board before the playing of the national anthem.


While no fans were in attendance, Moustakas did receive a round of applause from both the Royals' and Reds' dugouts. "Moose," as he's known in Kansas City, is in the first year of a four-year deal with the Reds after having been an All-Star with the Milwaukee Brewers last season.


The No. 2 overall pick in the 2007 MLB draft, Moustakas debuted with the Royals in June 2011. He was one of the homegrown stars of the Royals' back-to-back World Series appearances in 2014 and 2015. In eight big league seasons with the Royals, he posted a slash line of .251/.306/.430 with 139 home runs and 441 RBIs in 934 games.


He held the franchise's single-season home run record until Soler broke it last season with an AL-best 48.


"It's really cool to come back to a place that meant so much to me and my family, and a place that I meant so much to the people here and the fans and the city," Moustakas said before the game. "Like we said back in '14 and '15, it wasn't just us. It was this entire city, and we felt that love every time we stepped onto that field.