Keller pitched two-hit ball over seven shutout innings, Adalberto Mondesi tripled twice and the Royals held off the Chicago White Sox 5-3 Thursday after the start of their 2019 opener was delayed nearly two hours by rain.
"Man, if we keep pitching like that, we're going to be pretty good," Kansas City reliever Brad Boxberger said. "He just went out there and did his thing. That's setting the tone for the season. Being able to do what he did is absolutely incredible."
Eloy Jimenez went 0 for 3 with an RBI in his major league debut for the White Sox after signing a $43 million, six-year contract -- a record high for a player under club control yet to appear in a big league game. The 22-year-old outfielder was nicked on the left toe by a pitch with the bases loaded in a three-run ninth.
Chicago loaded the bases again before Boxberger, the fourth Royals reliever of the inning, retired Yolmer Sanchez on a line drive to deep right field for the final out.
"That's kind of the definition of our team this year," Keller said. "We're going to play great defense and we're going to run the bases and manufacture runs. It gives you confidence, because it's fun to watch. When you're pitching you know you don't have to strike out everyone because you have a great defense behind you. You're like, `Let them hit it because they're going to make the play."
Jorge Soler drove in two runs and Whit Merrifield scored twice for the speedy Royals. Merrifield extended his hitting streak to 21 games dating to last season and stole two bases -- he led the majors with 45 steals a year ago.
Keller (1-0) struck out five and walked one to help the Royals improve to 18-33 on opening day.
Kansas City finished 58-104 a year ago.
"Keller was outstanding," manager Ned Yost said. "He went back out after a long sixth, and made an adjustment after two pitches because he was a little off and got right back on it. You can't ask for a better opening day start than what we got from him today."
Boxberger got one out for a save in his Kansas City debut. Mondesi joined Tony Pena (2007) as the only Royals players to hit two triples in a season opener.
"It feels good," Mondesi said. "We just have to keep working and stay focused, doing the little things that are working."
Carlos Rodon (0-1) started for the White Sox and was charged with three runs -- two earned -- and three hits in 5 1/3 innings. He struck out six and walked one.
"I thought Carlos threw the ball well," Chicago manager Rick Renteria said. "He probably had to make a few more pitches. We had an error earlier. I think the ball was a little wet and (Tim Anderson) wasn't able to handle it. He induced that potential double-play ball that ended up deflecting off his mitt. Other than that, I thought he kept us in the ballgame, did a nice job."
Chicago won 14-7 in Kansas City on opening day last year.
Mondesi tripled in the fourth and scored on Alex Gordon's sacrifice fly. Mondesi initially was ruled out at third base, but replays showed Yoan Moncada didn't get the tag down in time and the call was reversed.
Rodon gave up a bloop single to Merrifield leading off the sixth. He stole second and third before Rodon plunked Alex Gordon with a pitch. Soler followed with an RBI single and the Royals got another run on an error by Sanchez at second base, ending Rodon's day.
Mondesi's second triple scored Merrifield in the seventh. Soler added an RBI double.
Anderson had an RBI single for Chicago in the ninth.
Royals LHPs Danny Duffy and Brian Flynn were placed on the 10-day injured list, retroactive to March 25. Duffy (left shoulder) has one more live batting practice session scheduled before beginning a rehab assignment. Flynn (sprained elbow ligament) is also throwing live batting practice but isn't as far along as Duffy. "They're both coming," Yost said. "I don't know when."
White Sox: Jimenez started in left field and struck out in his first at-bat. He was one of six Chicago players to appear on an opening day roster for the first time. "He took some hacks (and) saw that they're not going to be giving in to him easily," Renteria said. "I think today was a great learning experience for him, to know that they're not just going to be giving him cookies. He's going to have to look for mistakes out over when they don't want to give in to him."
Royals: First baseman Frank Schwindel made his big league debut as well. He popped out in his first at-bat and finished 0 for 4, but reached base safely on two errors. He is one of eight Royals who were not in the majors last year on opening day.
White Sox: RHP Reynaldo Lopez starts Saturday when the series continues.
Royals: RHP Jakob Junis goes for Kansas City in the second game of the season.
More AP MLB: https://apnews.com/MLB and https://twitter.com/AP-Sports
Red Sox say Dustin Pedroia hopes to return next season
Dustin Pedroia is hoping to return to the Boston Red Sox next year after playing in just nine games during the past two seasons because of his injured left knee.
The numbers behind Alonso's ROY season
Pete Alonso's record-breaking, first MLB season with the Mets won him the 2019 NL Rookie of the Year.
Houston Astros phenom Yordan Alvarez wins AL Rookie of the Year
Houston Astros slugger Yordan Alvarez capped a meteoric rise by becoming the franchise's third Rookie of the Year winner and second since the club moved to the American League.
Mets slugger Pete Alonso wins National League Rookie of the Year
Pete Alonso was a near unanimous selection, getting 29 of 30 first-place votes. Braves starter Mike Soroka received the other first-place vote and finished second.
Darren O'Day guaranteed $2.75M in deal with Braves
Right-handed reliever Darren O'Day is guaranteed $2.75 million as part of the one-year contract he reached to return to the Atlanta Braves.
MLB Awards Watch: Who will take home baseball's hardware?
Will late injuries cost Mike Trout and Christian Yelich an MVP? Which Astros pitcher will win the Cy Young? Awards season is here.