Whit Merrifield had three hits, stole three bases and scored twice off CC Sabathia in the first four innings, Jakob Junis held down the Yankees' potent offense and Kansas City beat New York 5-2 on Friday night.
Salvador Perez homed and added three RBIs for the Royals, who had lost five straight and seven of eight, getting swept by Tampa Bay earlier this week for the first time in nearly a decade.
They bounced back against the hottest team in baseball.
Junis (5-3) pitched into the sixth inning, allowing two runs on seven hits and a walk. But most of the hits he allowed were relatively benign base hits, rather than the towering, game-changing home runs that had powered the Yankees to 19 wins in their last 22 games.
Kelvin Herrera capped a strong bullpen effort with a perfect ninth for his ninth save in 10 opportunities.
Sabathia (2-1) lasted just five innings, struggling all night with his command. The big left-hander allowed just four hits and two earned runs, but two unearned runs came in after second baseman Gleyber Torres coughed up a routine ground ball in the third.
Perez went deep in the fifth to snap a 0-for-13 skid.
The Yankees tried to rally in the sixth, when Giancarlo Stanton and Aaron Hicks reached on base hits. Junis was lifted for reliever Tim Hill, who allowed Neil Walker's run-scoring single and Miguel Andujar's sacrifice fly before escaping.
The rest of the bullpen never gave the Yankees a chance.
Kyle McCarthy breezed through the seventh, striking out a pair, and Brad Keller handled a scoreless eighth - getting a running catch from Jon Jay - to give Herrera a chance to close it out.
Yankees RHP David Hale chose free agency over accepting an outright assignment. Hale had a 3.60 ERA before he was designated for assignment Tuesday to create roster space for OF Clint Frazier.
Chiefs quarterback Patrick Mahomes II, who is poised to become the starter this season, threw out the ceremonial first pitch. Mahomes has become Kansas City's top sports fan, attending Sporting KC games and last weekend wearing a Kansas City T-Bones jersey to a NASCAR race at Kansas Speedway.
Yankees: OF Estevan Florial, one of New York's top prospects, will require surgery on a fractured hamate bone in his right wrist after leaving Thursday night's game with Class-A Tampa. Yankees manager Aaron Boone said he had a similar injury in 2001 and missed about a month.
Royals: INF Cheslor Cuthbert remained sidelined with back spasms, though manager Ned Yost said he would be available as a defensive replacement. He was hurt in Monday's game against the Rays.
Royals LHP Danny Duffy (1-5, 6.51 ERA) tries to rebound Saturday night from a dismal start at Cleveland, when he allowed a career-high nine earned runs in 3 1/3 innings. The Yankees will counter with RHP Luis Severino (6-1), whose 2.14 ERA is fourth-best in the American League.
Copyright 2018 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed.