KANSAS CITY, Mo. -- Jackie Bradley Jr. does not have any superstitious routines in his hitting streak, while David Price is pitching well like David Price.
Eric Hosmer hit a two-run homer, while Jarrod Dyson tripled, scored the go-ahead run and threw out a runner at third base in the eighth inning as the Royals edged the Red Sox 3-2 in the afternoon opener.
Bradley extended his hitting streak to a career-high 24 games, the longest streak in the majors this season. He is only 10 games behind DiMaggio -- Dom DiMaggio that is -- to match the longest hitting streak in Red Sox history. Dom accomplished that in 1949. Next up is teammate Dustin Pedroia, who put together a 25-game hitting streak in 2011.
"Just trying to get hits," Bradley said. "Wearing the same clothes won't help that."
Bradley, the 40th player picked in the 2011 draft, entered this season with a .213 batting average in 238 games.
"It is hard to get to this level and right away start walking around with both of your feet," David Ortiz said. "It takes a minute. You come with the talent and you come with the approach, but it takes a minute most of the time for you to be able to stay consistent at this level."
Price (6-1) entered the game with an uncharacteristic 6.00 ERA, although he leads the American League in strikeouts.
Price, who is 3-0 with a 2.01 ERA against the Royals in seven regular-season games, limited the Royals to two runs and five hits over 7 1/3 innings, while striking out four and walking one. He has given up three runs on 11 hits while striking out 17 in 14 innings in beating the Royals and Astros in his past two starts.
"He was very good," Red Sox manager John Farrell said. "He was really commanding all of his pitches."
Edinson Volquez (4-4) absorbed the loss, permitting four runs on seven hits, while walking four and striking out five, in six innings.
The Red Sox hiked their lead to 4-1 with two runs with two out in the sixth. Travis Shaw drew a two-out walk and stopped at third on Josh Rutledge's double to left. After pitching coach Dave Eiland visited Volquez, he intentionally walked Bradley. Volquez, however, fell behind in the count 2-0 to Christian Vazquez, the Red Sox No. 8 hitter. Vazquez then rolled a single up the middle, scoring Shaw and Rutledge.
"First of all I make a mistake walking the guy after two outs," Volquez said. "I got myself in trouble after that. Rutledge hit a double and then intentional walk. It's a tough situation for any pitcher, bases loaded, two out. It was my opportunity to get out of the inning."
Craig Kimbrel worked the ninth to pick up his 11th save in 12 opportunities.
Alec Mills, who the Royals brought up from Double-A Northwest Arkansas as the 26th man, made his big league debut and gave up the other run. Mills threw only nine strikes in 21 pitches. He walked two, hit a batter and gave up a single to Bradley, retiring only two of the six batters he faced.
Alcides Escobar doubled in eighth to finish Price's night. Junichi Tazawa replaced Price and allowed a run-producing single to Lorenzo Cain for the final Kansas City run.
After retiring the first two batters in the second, Volquez served up a home run to Bradley. Bradley drove a changeup out to center for his seventh home run.
Betts hit Volquez's first pitch of the third inning out to left field, making it 2-0. The Red Sox have homered in 19 straight games, equaling a club record set in 1996.
Salvador Perez cut the lead in half when he parked a Price first-pitch 92 mph fastball over the center-field fence with two outs in the bottom of the fourth.
Paulo Orlando walked and Whit Merrifield singled, his first big league hit, with one out off Price in the fifth, but the Royals came away empty.
"It's hard to explain," Merrifield said on his first hit. "You work your whole life in this game to get to this level. It's nice to get it out of the way. I don't have to worry about it. To get it a guy off like Price, that's icing on top."
NOTES: The Royals made three roster moves after the first game. They purchased the contract of INF/OF Merrifield from the Triple-A Omaha Storm Chasers and started him in left field. They optioned INF Christian Colon, who started the first game at second base, to the Storm Chasers. The Royals designated for assignment OF Jose Martinez, who led the Pacific Coast League with a .384 batting average last season. ...The Royals promoted RHP Alec Mills from Double-A Northwest Arkansas, where he led the Texas League with 44 strikeouts in 42 innings, as the 26th man for the doubleheader. RHP Noe Ramirez was added as the Red Sox 26th man. ... Royals 3B Mike Moustakas went 2-for-4 with an RBI single and a strikeout for the Triple-A Northwest Arkansas Naturals as the DH in a 2-1 loss to Arkansas in his first rehab game Wednesday.... Red Sox RHP Steven Wright threw a complete game in the opener, his second career complete game, and both came in his past three starts.