Royals blast three homers, dump Yankees in finale
In possibly the final appearance of his 20-year career, Greinke (2-15) threw five-plus innings of one-run ball. He allowed four hits and two walks while striking out two.
MJ Melendez, Edward Olivares and Dairon Blanco went deep off Michael King (4-8), helping the Royal build a 4-0 lead and chasing New York starter after four innings. King surrendered eight hits and a season-high four runs with one strikeout and no walks.
Greinke was treated rudely at the start by the Yankees, who opened the game with three straight singles, but he escaped the jam with a double-play grounder.
Throwing first-pitch strikes to 15 of 19 batters, Greinke pitched into the sixth inning for the first time since July 4. After walking DJ LeMahieu to open the sixth, Greinke exited to a standing ovation from the home crowd.
Melendez connected for his 16th home run leading off the second before Nick Pratto added a two-out RBI single for a 2-0 Kansas City lead.
Olivares, his 12th, and Blanco, his third, went deep in the fourth, expanding Kansas City's lead to 4-0. Blanco had three hits and two stolen bases while scoring twice.
Bobby Witt Jr. tripled leading off the fifth, his major-league-leading 11th, and scored on Salvador Perez's sacrifice fly for a 5-0 advantage.
Isiah Kiner-Falefa's two-out, two-run single in the sixth cut the deficit to 5-2.
Three Royals relievers allowed one run over four innings, as James McArthur earned his fourth save with two scoreless innings, fanning four.
Witt was caught stealing in the third inning, and he finished the season with 30 homers and 49 steals. He fell just short of being the first player ever with at least 30 homers, 50 steals and 10 triples in a season.
Despite ending the season winning five of their last six series, Kansas City (56-106) matched a franchise record for losses (2005).
The Royals won a series against the Yankees for the first time since May 15-17, 2015, breaking a streak of 15 straight series losses.
Austin Wells had three of the Yankees' seven hits.
New York (82-80) finished with its worst winning percentage since 1992 while missing the playoffs for the first time since 2016.
Yankees rally past Royals to secure 31st straight winning season
Estevan Florial delivered a go-ahead single with two outs in the sixth, breaking a 2-all tie, before Gleyber Torres' bases-loaded, two-run single capped the decisive three-run inning.
Montas (1-0), who had right shoulder surgery at the beginning of spring training, pitched for the first time in the regular season since Sept. 16, 2022. He recorded four outs while allowing two hits and a walk with one strikeout.
After Montas' debut, three additional Yankees relievers pitched out of trouble for 3 2/3 scoreless innings as the Royals went 1-for-11 with runners in scoring position in the game. Clay Holmes earned his 24th save, striking out two in a hitless ninth.
The Royals collected leadoff hits in each of the first three innings against starter Clarke Schmidt, who threw four innings, allowing two runs on eight hits.
Kansas City jumped ahead 1-0 in the first on three singles as Nelson Velazquez drove in Maikel Garcia with a bloop hit to left.
After Bobby Witt Jr. was caught trying to steal his 50th base, Salvador Perez connected for his 23rd homer to increase the Royals' lead to 2-0 in the third inning.
In the second inning, Royals opener Steven Cruz gave way to Alec Marsh (3-9), who opened the fourth by throwing nine consecutive balls before allowing two-out RBI hits to Oswaldo Cabrera and Everson Pereira, tying the score 2-2.
Marsh allowed three runs on six hits and three walks in 4 1/3 innings.
Torres, DJ LeMahieu and Kyle Higashioka each collected two of the Yankees' 12 hits.
The Yankees (82-79) sealed their 31st consecutive winning season, the second-longest stretch in major league history behind their own 39-season winning streak from 1926 to 1964.
Royals center fielder Drew Waters exited the game in the fourth inning due to left quad tightness, while Velazquez left in the seventh after fouling a ball off his left knee.
Kansas City (55-106) matched its franchise record for most losses in a season, set in 2005.
Royals score 9 runs in 1st inning on way to rout of Yankees
RodÃ³n (3-8) closed out his disappointing first season in pinstripes by surrendering six hits and two walks to the first eight batters, becoming the third starter in baseball history - and first since Paul Wilson in 2005 - to allow eight earned runs without recording an out.
Signed in the offseason to a six-year, $162 million contract, RodÃ³n added more than a run to his ERA, finishing the year at 6.85.
During their biggest inning of the year, the Royals set a franchise record as the first 10 batters reached safely, highlighted by Edward Olivares' two-run homer, his 11th.
Maikel Garcia and Salvador Perez each collected two hits in the frame while Perez and Kyle Isbel delivered two-run doubles as Kansas City sent 14 batters to the plate, scoring nine.
The Red Sox were the last team to have the first 10 players reach safely. Boston put 11 straight on base against Florida on June 27, 2003, scoring 14 in the first inning of a 25-8 win.
Meanwhile, Jordan Lyles (6-17) retired the first 10 batters he faced before walking Aaron Judge ahead of Austin Wells' three-run homer in the fourth inning.
Judge doubled and scored on Wells' fourth RBI, a sixth-inning grounder, cutting the deficit to 10-5.
Wells' home run, his fourth, was the 39th surrendered by Lyles, setting a Royals' franchise record.
Lyles completed six innings, allowing five runs on four hits and a walk, striking out four.
Perez recorded three hits and three RBIs, giving him 21 RBIs in 18 September games.
Bobby Witt Jr. capped the scoring with his 30th homer, a two-run shot in the seventh, becoming the first Royals player to record 30 home runs and 30 stolen bases in a single season.
Kansas City (55-105) needs one win in the final two games to avoid setting a franchise record for losses.
The loss relegated the Yankees (81-79) to their worst season since 1992 when they suffered their last losing season (76-86).
Spencer Torkelson, Tigers use big 7th inning to sweep Royals
Parker Meadows had three hits, a run and an RBI, while Matt Vierling supplied two hits and two RBIs. Andy Ibanez had the go-ahead hit for the Tigers (76-83), who have won four straight.
The Tigers claimed an 8-0 victory earlier in the day, completing a suspended game from the previous night.
Detroit starter Sawyer Gipson-Long gave up three runs (two earned) and four hits while striking out six in five innings. Jose Cisnero (3-4) pitched a scoreless inning and was credited with the win.
Royals starter Cole Ragans (7-5) was charged with four runs in 6 1/3 innings while striking out eight. Michael Massey hit a two-run homer for Kansas City (54-105).
The Royals grabbed the lead in the first inning. Bobby Witt Jr. reached on a fielder's choice, stole second and moved up to third when first baseman Tyler Nevin booted Massey's grounder. Edward Olivares brought Witt home with a two-out single.
Kansas City added to its advantage in the third. MJ Melendez drew a leadoff walk, and after a pair of flyouts, Massey smashed his 15th homer over the right field wall.
Gipson-Long bounced back to strike out the side in the fourth inning.
Andre Lipcius led off the bottom of the fifth with a single. After two strikeouts, Meadows bounced a single up the middle to put runners on the corners. Ragans then struck out Vierling to snuff out that threat.
Lipcius singled again with one out in the seventh. Zack Short and Carson Kelly walked to load the bases with no outs. Meadows singled to right to bring in Lipcius and end Ragans' day.
He was replaced by Carlos Hernandez, who promptly gave up a game-tying, two-run single to Vierling. Ibanez followed with a go-ahead single before Torkelson crushed his 30th homer over the left field wall.
Tigers jolt Royals to win completion of suspended game
Cabrera, who is retiring at the end of the season, homered during the second inning on Wednesday night. The game was suspended after four innings due to inclement weather.
Tyler Nevin launched a three-run homer as a pinch-hitter. Cabrera reached base three times, scoring two runs and driving in a pair. Nevin also scored two runs.
Jake Rogers added a two-run shot for Detroit (75-83).
Detroit starter Tarik Skubal cruised through the four innings, holding the Royals to two hits while racking up eight strikeouts. Miguel Diaz (1-0) tossed two innings of hitless relief and was credited with the win.
Brenan Hanifee and Trey Wingenter finished off the Tigers' 14th shutout of the season.
The Royals (54-104) used Jonathan Bowlan as their opener. Bowlan, making his major-league debut, gave up Cabrera's homer in two innings of work.
Kansas City batters were limited to four hits and didn't draw a walk.
Cabrera jumped on the first pitch he saw from Bowlan, and lined it to the opposite field. It cleared the right-center field wall to give Detroit a 1-0 lead in the second.
Skubal was dominant from the get-go. He struck out two batters in the first, two more in the second and the side in the third.
With Angel Zerpa on the mound, the Tigers extended their advantage to 4-0. Cabrera had a one-out single and Andy Ibanez followed with a double down the right-field line. Nevin then launched his second homer of the season over the right field wall.
Detroit made it 6-0 in the fifth against Steven Cruz, who walked three batters in the inning. The last of those came against Cabrera and forced in a run. Ibanez drove in a run on a fielder's choice.
Rogers hit his 21st homer off Jackson Kowar in the eighth.
Tigers lead Royals in game suspended after 4 innings
The contest will be resumed at 1:10 p.m. ET on Thursday. The regularly scheduled game will begin approximately 40 minutes after the conclusion of the suspended game.
Miguel Cabrera, who is retiring at the end of the season, blasted his fourth homer of the season and 511th of his career in the second inning. Tyler Nevin launched a three-run homer as a fourth-inning pinch hitter.
Rain fell for much of the contest and picked up after the fourth inning, forcing the umpires to call a delay. After a wait of more than an hour, the decision was made to suspend the game.
Detroit starter Tarik Skubal cruised through the four innings, holding the Royals to two hits while racking up eight strikeouts and issuing no walks.
Skubal won all four of his previous starts in September, and the rain delay may have cost him another victory.
In 10 previous appearances against Kansas City, including eight starts, Skubal was 1-7 with a 5.51 ERA.
The Royals (54-103) used Jonathan Bowlan as their opener. The 26-year-old right-hander, making his major league debut, gave up one run, on Cabrera's homer, and three hits in two innings. He struck out two and didn't walk a batter.
Cabrera jumped on the first pitch of the second inning, lining it to the opposite field. It cleared the right-center-field wall to give Detroit a 1-0 lead.
Skubal was dominant from the get-go. He fanned two batters in the first, two more in the second and then struck out the side in the third.
With Angel Zerpa on the mound in the fourth, the Tigers extended their advantage to 4-0. Cabrera hit a one-out single and Andy Ibanez followed with a double down the right field line. Nevin then launched his second homer of the season over the right field wall.
Detroit (74-83) won the series opener on Monday 6-3 and holds an 8-3 advantage in the season series.
Tigers rally to end Royals' six-game win streak
Baddoo's 11th homer broke a 2-2 deadlock. Spencer Torkelson supplied a two-run double for the Tigers (74-83) in the opener of a three-game series.
Jason Foley (3-3) pitched one scoreless inning of relief to pick up the win.
Salvador Perez, Nick Pratto and Nick Loftin drove in the runs for the Royals (54-103).
Kansas City starter Zack Greinke gave up one hit and one walk in five scoreless innings while notching five strikeouts. Detroit starter Reese Olson allowed two runs, one earned, on five hits in 5 2/3 innings. He finished with seven strikeouts and two walks.
Olson created his own mess in the second inning, and it cost him a run. Nelson Velazquez reached on a throwing error by Olson. After Olson retired the next two batters, he unleashed a wild pitch to allow Velazquez to move to second, and Pratto followed with an RBI single.
After walking the next batter and committing a balk, Olson prevented further damage by striking out Maikel Garcia.
Kansas City's Bobby Witt Jr. ripped his major-league-leading 10th triple to left-center leading off the sixth. Perez brought him home with a single through a drawn-in infield to make it 2-0.
Anthony Veneziano, making his major league debut, replaced Greinke in the sixth and Kansas City lost the lead. The rookie got into trouble when he walked Carson Kelly with one out. Meadows then reached on an error. Matt Vierling fouled out before Torkelson smacked a two-run double down the left field line tied the contest 2-2. A groundout ended the inning.
Baddoo gave Detroit the lead on the first pitch he saw from Taylor Clarke (3-6). He clobbered a fastball an estimated 443 feet to right-center. Meadows pulled a slider over the wall three pitches later.
Detroit wasn't through scoring in the inning. With two outs, Kerry Carpenter singled, knocking out Clarke. With Jackson Kowar on the mound, Miguel Cabrera walked, and Andy Ibanez and Zach McKinstry followed with RBI singles.
Scorching Royals complete 3-game sweep of Astros
The Royals (54-102) notched their sixth consecutive win and 10th in 11 games, with five of those victories coming against the stumbling Astros (85-71), who have dropped nine of 12 games since taking a 21/2-game lead in the American League West with a win over the San Diego Padres on Sept. 10. Houston lost 17 of its last 23 home games and finished the season 39-42 at Minute Maid Park.
The Royals clubbed four homers off Astros rookie right-hander Hunter Brown (11-13), who retired the side in order in the first inning before suddenly coming undone in the second.
Velazquez ignited the uprising with his 16th home run leading off the second, a 380-foot shot to right-center field with an exit velocity of 103.5 miles per hour. His blast pulled the Royals even at 1-1 but that deadlock was shortlived as three batters later, Matt Duffy smashed his second home run to left-center, driving home Nick Loftin and lifting the Royals to a 3-1 advantage.
Brown needed 33 pitches to complete the second inning. And after the Astros clawed to within 3-2 in the bottom of that frame on a run-scoring groundout from Jose Altuve, Brown surrendered another three-spot in the third that pushed the Astros into a four-run hole.
Royals captain Salvador Perez, fresh off reinstatement from the seven-day concussion list, followed a Bobby Witt Jr. leadoff walk with a 410-foot blast to left, his 22nd home run extending the lead to 5-2. Velazquez followed with a shot off the facade of the second deck in right for his 17th home run and first multi-homer game since July 22, 2022, against the Philadelphia Phillies while playing for the Chicago Cubs. Velazquez finished 2-for-3 with two runs and two RBIs.
Brown allowed six runs on six hits and one walk with four strikeouts over six innings.
The Astros again were undone by their lack of timely hitting, going 1-for-10 with runners in scoring position. Houston loaded the bases with no outs in the third but only managed RBI groundouts from Chas McCormick and Yainer Diaz. Yordan Alvarez socked his 29th home run two innings later to cut the deficit to one run, but three Royals relievers covered the last eight outs while keeping the Astros scoreless.
James McArthur worked around a one-out Altuve single in the ninth for his third save, sending the Astros to defeat with a strikeout of Alvarez.
Hot Royals hand Astros another damaging setback
The Royals (53-102) earned their fourth win in five games over the slumping Astros (85-70), whose postseason hopes took a blow with their eighth loss in 11 games. Houston fell 1 1/2 games behind the Texas Rangers, who beat the Seattle Mariners 2-0, in the American League West.
Houston is in possession of the AL's third wild-card spot by a half-game over Seattle.
Kansas City has won five straight games and nine of its past 10.
Stymied by Royals right-hander Jordan Lyles (5-17) for five innings, the Astros mounted a rally against the Kansas City bullpen starting with a leadoff home run by Chas McCormick in the seventh that cut the deficit to two runs. McCormick clubbed his 22nd homer off Royals reliever Collin Snider, who rallied with strikeouts of pinch-hitter Jon Singleton and Jose Altuve to strand Jeremy Pena in scoring position.
Houston then stroked back-to-back one-out doubles off Tucker Davidson in the eighth, with Kyle Tucker plating Yordan Alvarez and slicing the margin to one run. But Clarke entered for the Royals and, after plunking Jose Abreu with a pitch, retired McCormick and Yainer Diaz. Clarke then retired the side in order in the ninth for his third save.
The Royals fashioned their three-run advantage off Astros right-hander J.P. France (11-6) when Maikel Garcia reached on an infield single in the first and advanced to third on a stolen base and a Diaz throwing error before scoring on a MJ Melendez sacrifice fly for a 1-0 lead.
After Nick Pratto and Kyle Isbel reached in succession leading off the fifth via a single and a walk, both scored without the ball leaving the infield, with Pratto scoring on a fielder's choice groundout and Isbel following when France uncorked a wild pitch to Melendez.
After taking the loss in his previous start against the Astros on Sunday, Lyles was much sharper this time around. While he retired the side in order only once, doing so in the fourth, Lyles did not allow a baserunner to reach scoring position until Pena stole second base in the fifth.
Lyles issued two walks and recorded three strikeouts during his stint. Both walks -- to Alex Bregman in the first inning and Altuve in the third -- came with one out, but Lyles followed with consecutive flyball outs in both innings to mute any potential uprisings. Diaz and Pena produced singles off Lyles, but the Astros did little to mount a significant threat after both reached safely.
Cole Ragans, Royals shut down Astros in 7-5 win
The Royals (52-102) earned their third victory in four games against the spiraling Astros, who fell behind the Texas Rangers and out of first place in the American League West with their seventh loss in 10 games. Houston (85-69) occupies the third AL wild card spot, one-half game ahead of the Seattle Mariners, who lost 8-5 to Texas.
Ragans (7-4) held a four-run lead before he took the mound in the bottom of the first. He allowed one run when Yordan Alvarez smoked a one-out double to left-center field that scored Jeremy Pena from first. The Astros halved the deficit an inning later by getting a leadoff, opposite-field home run to Jose Abreu.
But Ragans, acquired from Texas on June 30, thwarted the Astros repeatedly over his final four innings of work. He retired the side in order in the third and fifth innings and worked around a leadoff triple by Kyle Tucker in the fourth by sandwiching two groundouts around his strikeout of Mauricio Dubon.
When Alvarez and Alex Bregman walked in succession to open the sixth, Ragans buckled down again and recorded three consecutive outs to stymie the Astros once more. Ragans allowed two runs on three hits and four walks with five strikeouts over six innings by limiting the Astros to an 0-for-8 showing with runners in scoring position.
Astros left-hander Framber Valdez (12-11) wasn't as resourceful. The first five batters reached against Valdez in the first, starting with a passed ball by catcher Martin Maldonado that allowed Maikel Garcia to reach despite striking out. Bobby Witt Jr. followed with an RBI triple before MJ Melendez added a run-scoring single. Edward Olivares (RBI double) and Nick Loftin (sacrifice fly) extended the rally to four runs.
Valdez found his stride over the ensuing four frames but opened the sixth with consecutive hit batsmen. One batter after Nick Pratto extended the Royals' lead to 5-2, Kyle Isbel knocked out Valdez with a bloop two-run single to center.
Houston fashioned a rally in the eighth courtesy of a three-run home run by Chas McCormick off Jackson Kowar, but James McArthur stranded runners at the corners in that frame before silencing the Astros with a perfect ninth for his second save.
Royals sweep series with 6-2 win over Guardians
After a pair of first-inning Guardians errors, Velazquez pounded his 15th homer above the left-field bullpen for a 3-0 lead. It was the 37th home run surrendered by Guardians starter Lucas Giolito, third most in baseball.
Giolito (8-14) allowed four runs (three earned) on seven hits over 5 1/3 innings, walking three with six strikeouts. He has lost six of his last seven starts and 3 of 4 for Cleveland.
Andres Gimenez's RBI single rallied the Guardians for a pair of fourth inning runs, driving Royals starter Zack Greinke from the mound.
Greinke allowed two runs on five hits in 3 2/3 innings, throwing first-pitch strikes to 14 of 16 batters. With his five strikeouts, he moved past Bret Saberhagen for fourth most in Kansas City history at 1,094.
Angel Zerpa (3-3) recorded his second consecutive long-relief win, striking out four and allowing three hits while retiring 16 of 19 batters over 5 1/3 shutout innings. It was Zerpa's career-long relief appearance.
Bobby Witt Jr.'s two-out RBI single extended the Royals' lead to 4-2 in the fourth. Edward Olivares added an RBI grounder in the seventh.
A third Guardians' miscue allowed Witt to score with two out in the eighth, capping the scoring.
Witt, Nick Loftin and Drew Waters each had two of Kansas City's 10 hits and Waters stole two bases.
The Royals (51-102) have won seven of eight, sweeping the Guardians for the first time since April 12-14, 2019, also at Kauffman Stadium.
Josh Naylor collected two of Cleveland's eight hits.
The Guardians (72-81) suffered their second series sweep and first since July 31-Aug. 2 at Houston. Despite the sweep, Cleveland won the season series against Kansas City, winning 7 of 13 games, and they have not lost a season series to the Royals since 2015.
Cleveland fell nine games behind the Minnesota Twins, who rallied for a 5-3 win at Cincinnati, reducing their magic number to one.
MJ Melendez powers Royals to victory over Guardians
Kansas City's Nick Loftin had a pair of RBI singles, and Tyler Cropley collected an RBI with a sacrifice fly in his major league. Maikel Garcia had three of the 13 hits for the Royals (50-102), who have won six of their past seven games.
Alec Marsh (2-8) picked up his second win in as many outings after allowing four runs (three earned) on five hits in 4 1/3 innings in relief of opener Steven Cruz.
Royals reliever James McArthur entered the game with runners on the corners and no outs in the eighth inning. He ended the threat by striking out Josh Naylor, Kole Calhoun and Ramon Laureano to preserve the 7-6 lead.
Collin Snider retired the side in order in the ninth inning to secure his first career save.
Melendez deposited a 2-1 offering from rookie Logan Allen (7-8) over the wall in right-center field to stake Kansas City to a 2-0 lead in the first inning. The homer was Melendez's 15th of the season and first since Sept. 5.
The Royals doubled their advantage to 4-0 in the third inning when Melendez had an RBI single and scored on Loftin's base hit.
Allen was saddled with the loss after permitting four runs on eight hits in three innings. He struck out one and walked two.
The Royals scratched for three more runs in the bottom of the fifth to seize a 7-2 lead. Melendez scored following a fielding error by first baseman Josh Naylor, Loftin had an RBI infield single to second base and Cropley capped the scoring with a sacrifice fly.
Royals' Drew Waters keys win over Guardians
Waters' bases-loaded liner to left highlighted a four-run eighth for the Royals, who have won five of six but remain buried in last place with a 49-102 mark.
The loss snapped a three-game Cleveland (72-79) winning streak, hampering their faint playoff hopes as they chase the Minnesota Twins (79-71) in the American League Central Division.
Trevor Stephan (6-7) hit a batter and walked three, driving in one run, and loading the bases ahead of Waters' double. Waters had two of Kansas City's six hits, snapping his 0-for-12 slump.
Jackson Kowar (2-0) earned the win with a scoreless eighth and James McArthur collected his first career save with a perfect ninth.
Bo Naylor's RBI double highlighted a two-run second inning as Cleveland grabbed a 2-0 lead.
Kansas City got on the scoreboard in the third when Bobby Witt Jr. beat out an infield hit, stole second and scored on MJ Melendez's triple. Witt has nine steals in his past eight games and his 48 stolen bases are the most for the Royals since Tom Goodwin's 66 in 1996.
With one out in the fourth, Gabriel Arias drove Brady Singer's sinker over the right field wall for his 10th home run. Arias added a sacrifice fly in the sixth for a 4-1 lead.
Guardians leadoff hitters reached safely in four of six innings against Singer, who went six innings, allowing four runs on eight hits and two walks.
In the sixth, Nelson Velázquez hammered Guardians starter Cal Quantrill's splitter 425 feet to left, cutting the deficit to 4-2. It was Velázquez's 14th of the season and 11th with Kansas City.
Quantrill pitched 5 2/3 innings, allowing two runs on five hits with three strikeouts.
JosÃ© RamÃrez walked leading off the third and stole second for his 200th career stolen base.
AndrÃ©s GimÃ©nez collected three of Cleveland's nine hits and stole his 29th base.
Royals C Salvador Perez lands on 7-day concussion IL
Perez, 33, was removed from Saturday's game against Houston following a foul tip to the mask.
The eight-time All-Star is batting .252 with 21 homers and 72 RBIs in 133 games this season.
Kansas City called up Tyler Cropley from Triple-A Omaha and transferred fellow catcher Freddy Fermin to the 60-day injured list.
Astros bounce back to end Royals' four-game win streak
The Astros (84-66) salvaged the final game of the series after dropping the first two, and the Royals (48-102) had their four-game winning streak snapped.
The Astros broke the game open with three runs in the ninth. Meyers tripled and scored on Jose Altuve's third hit, a single to left. Alvarez walked with the bases full for an RBI and Altuve came home on a fielder's choice.
With the win, the Astros are now 1 1/2 games ahead of the Texas Rangers, who were swept in their three-game series with the Cleveland Guardians, in the American League West.
Valdez (12-10) yielded five hits and fanned five.
Royals starter Jordan Lyles (4-17) was tagged for four runs on six hits in six innings. The right-hander struck out six.
In the second inning, the Royals broke on top on Drew Waters' sacrifice fly to right field. Nick Loftin singled with one out, and a controversial play created some confusion.
Logan Porter grounded back to Valdez, who couldn't make the play. The ball deflected toward the third base line. Valdez chased and made an off-balance throw toward first. To retrieve the wild toss, Astros first baseman Jose Abreu flipped his glove and knocked down the ball.
The umpires consulted and awarded Porter second base, and Loftin stayed at third. Errors were charged to Valdez and Abreu.
The Astros responded with two runs in the third inning. Altuve doubled to open the inning, and Lyles put himself in a bind by hitting Alex Bregman and Alvarez with pitches, loading the bases. Abreu lifted a sacrifice fly, and Chas McCormick, who had three hits, slapped a two-out, RBI single, giving Houston a 2-1 advantage.
Meyers put Houston ahead 3-1 in the fourth inning with a solo home run, his 10th of the year. In the fifth inning, it was Alvarez's turn, as the slugger connected on his 28th.
The Astros maintained their 4-1 lead in the fifth inning when left fielder Michael Brantley threw Porter out at the plate on Maikel Garcia's two-out single.
Royals hold off Astros for fourth straight win
Logan Porter belted his first big league home run, and the Royals extended their winning streak to four straight. The American League West-leading Astros have now lost the first two in the series.
James McArthur (1-0) got the win, and Hector Neris (6-3) was tagged with the loss.
The night was a salute to the Negro Leagues, and the Royals (48-101) wore Kansas City Monarchs uniforms while the Astros (83-66) were clad in Houston Eagles uniforms.
The Royals snapped a 6-6 tie with three runs in the seventh inning. Kyle Isbel put Kansas City in front with an RBI bunt single off Neris. A throwing error by Astros third baseman Alex Bregman on Dairon Blanco's ground ball produced another run, and Nick Pratto's sacrifice fly gave the Royals a three-run cushion.
The Astros closed the gap in the ninth inning on Yordan Alvarez's RBI double and Jose Abreu's run-scoring groundout off Carlos Hernandez. Taylor Clarke recorded a one-out save, his second.
In the first inning, the Royals took a three-run lead. Maikel Garcia walked and stole second base. A single by Bobby Witt Jr. put runners on the corners, and Perez lined a two-run double. Velazquez provided a sacrifice fly.
In the third inning, Witt walked and stole second base, his 47th of the season. MJ Melendez lined an RBI single to center to give Kansas City a 4-0 advantage.
The Astros answered in the fifth inning with three runs. Yainer Diaz homered to center. Mauricio Dubon tripled and scored on Bregman's RBI single. Alvarez made it a one-run game with a run-scoring single.
Perez was replaced by Porter in the fifth inning after the catcher was hit on the face mask by Jose Altuve's foul ball.
Kansas City added a run in the fifth inning when Velazquez walked with the bases loaded, and Witt lifted a sacrifice fly in the sixth inning.
But the Astros pulled even in the seventh inning on Altuve's three-run homer off Collin Snider.
Royals ride three homers to victory over Astros
Witt, Massey and MJ Melendez had two hits each for the Royals (47-101), who have won three in a row.
Kansas City starter Zack Greinke pitched two scoreless innings before departing. The former American League Cy Young winner and six-time All Star allowed three hits, struck out one and walked one, but remains winless in his past 20 games (17 starts).
Angel Zerpa (2-3) allowed one run and two hits in four innings of relief to record the win. He fanned five and walked one.
Taylor Clarke yielded a run in the ninth but still earned his first save of the season.
Astros starter Cristian Javier (9-4) allowed three runs (two earned) and five hits in five innings. He struck out six and walked one.
Jose Abreu homered and singled and Jeremy Pena also had two hits for the Astros, who have lost three of four.
Houston (83-65) was unable to take advantage of a loss earlier in the day by the Texas Rangers (82-65) and remains a half-game ahead of the second-place Rangers in the AL West. The Seattle Mariners (81-65) were one game behind the Astros entering their late game against the Los Angeles Dodgers.
Melendez singled with one out in the third, took second on a passed ball and moved to third on an infield single up the middle by Witt. Salvador Perez then lined out to left, and Melendez scored on the sacrifice fly for a 1-0 lead.
Velazquez lifted a 1-2 pitch over the fence in center with one out in the fourth to extend the lead to 2-0. It was his 13th long ball of the year.
With two outs in the fifth, Witt lined a solo home run to left, his 29th of the season, making it 3-0.
Pena opened the sixth with an opposite-field single to right. Yordan Alvarez then slapped a double just inside the left field line, scoring Pena from first to make it 3-1, but Kansas City avoided further damage.
Massey got the run back in the eighth when he homered for the third consecutive game, his 14th of the year.
Abreu hit his 15th homer of the season to lead off the ninth and make it 4-2, but Clarke struck out the next three batters.
Michael Massey homers as Royals take down White Sox
Rookie right-hander Alec Marsh earned his first career victory as Kansas City (46-101) took two of three to claim the season series from the White Sox 7-6.
Chicago (56-90) lost for the ninth time in 12 games. The White Sox reached the 90-loss mark for the first time since the 2018 club lost 100.
Andrew Benintendi hit a ground-rule double two batters into the game, but Chicago collected just one extra-base hit the rest of the night.
The White Sox got their lone run on Yasmani Grandal's RBI fielder's choice in the seventh, two batters after a Yoan Moncada double.
Working as an opener in what officially was his first start, Kansas City rookie Steven Cruz pitched two scoreless innings, allowing two hits with a career-best four strikeouts.
Marsh (1-8) was sharp, too, following Cruz by spacing one run and three hits in 4 1/3 innings with two walks and five strikeouts.
Massey, who grew up a White Sox fan and attended Brother Rice, a Chicago parochial high school, continued to torment his former muses.
He followed an Edward Olivares infield single leading off the Royals' second with a homer to right-center field. That proved to be the lone blemish against Chicago right-hander Mike Clevinger, who scattered two runs and six hits in six innings while striking out seven.
Massey has hit six of his 13 home runs this season against the White Sox. He connected for a three-run shot to help the Royals win the second game of Tuesday's doubleheader.
Clevinger (7-8) didn't issue a walk for the third straight start this month, a span of 17 innings. He lost to Kansas City for the first time in 16 career appearances, including 15 starts.
Nick Loftin, who pinch-hit in the seventh, had two hits, two runs and two RBIs for Kansas City, which broke the game open with a three-run seventh. Bobby Witt Jr. added two hits for the Royals.
Royals blow lead, get it back to clip White Sox
Chicago trailed 9-0 before getting on the scoreboard in the fifth inning, then erupted for eight runs in the sixth to tie the game.
Garcia gave the Royals (45-101) a 10-9 lead in the seventh with his run-scoring single. A Bobby Witt Jr. sacrifice fly in the ninth put the Royals ahead 11-9. The team needed that run, as Carlos Hernandez navigated a shaky ninth to earn his fourth save of the season and help Kansas City stop a five-game losing streak.
After watching Chicago (56-89) send nine men to the plate in the first inning of its Game 1 victory, Kansas City followed suit. Logan Porter, who worked at the Royals' spring training facility in high school, delivered a two-run single in his first major league at-bat to highlight a four-run first.
Seven more Royals batted in the second inning. A Salvador Perez RBI single preceded Massey's three-run shot to right field.
Chicago starter Touki Toussaint surrendered eight runs and six hits in one-plus inning with two walks and a strikeout before his teammates rallied to get him off the hook.
After managing just one hit in the first five innings -- an Eloy Jimenez solo homer -- Chicago collected seven hits in the sixth. Gavin Sheets provided a key blow with the bases loaded, hitting a two-run double off the wall in right center. An error allowed a third run to score, drawing the White Sox to within 9-8.
Sheets advanced to third on the play and scored on Lenyn Sosa's game-tying sacrifice fly one batter later.
Royals starter Jordan Lyles allowed seven runs and seven hits in five innings with three strikeouts and no walks.
Perez and Porter each had two hits and two RBIs, while Kyle Isbel had two hits.
Sheets drove in three runs for Chicago. Andrew Vaughn and Jimenez had two hits apiece.
Taylor Clarke (3-5) picked up the win despite allowing two runs (one earned) and one hit in one inning of relief. He walked one and struck out two.
Deivi Garcia (0-1) was the losing pitcher, yielding one run and one hit in one inning.
White Sox get hot early, beat Royals to open twin bill
A hot start put the White Sox (56-88) well on their way to stopping a two-game losing streak. The first five Chicago batters reached base against Royals starter Brady Singer.
Eloy Jimenez and Yoan Moncada grounded consecutive RBI singles to open the scoring. Sheets drove home a pair of runs two batters after Moncada, and Andrus capped the rally with a run-scoring forceout.
Kansas City (44-101) was unable to recover en route to its fifth straight defeat. The Royals have lost at least five games in a row six times this season.
Right-hander Dylan Cease pitched five innings of one-run ball to earn the win for Chicago. Cease (7-7) scattered four hits, one walk and eight strikeouts. It marked Cease's highest strikeout total since he fanned nine Minnesota Twins on July 22, a span of nine starts.
Kansas City got on the scoreboard in the fourth inning, as Edward Olivares hit a two-out RBI double to drive home Bobby Witt Jr., who opened the inning with one of his three hits. Witt also walked, reaching base in each of his four plate appearances.
Singer (8-11) lost for the third time in four starts. He allowed six runs and nine hits in 5 1/3 innings with two walks and two strikeouts.
Singer limited the White Sox to two hits in the second through fifth innings before being chased from the game on Andrus' RBI single in the sixth that made it 6-1 Chicago.
Bryan Shaw, Lane Ramsey and Gregory Santos combined on 3 2/3 innings of one-run relief with six strikeouts for the White Sox.
Olivares collected his second hit and RBI against Ramsey in the eighth.
Tim Anderson added two hits for Chicago as the White Sox took a 6-5 lead in the season series with the Royals.
White Sox assistant hitting coach Chris Johnson was ejected in the sixth inning for arguing balls and strikes.