KANSAS CITY — Kansas City leapfrogged Detroit to the top of the American League standings by beating the Tigers 8-1 Thursday, led by a strong pitching effort by Danny Duffy. The Royals went to the top of the AL Central and are equal with Houston for the league lead after the surprising Astros edged Seattle to take their seventh straight win. Kansas City's Duffy (2-0) held Detroit scoreless over the first seven innings. He struck out seven and walked two before being replaced after giving up a run to start the eighth. Eric Hosmer, who also homered Wednesday at Cleveland, drove a pitch to center for a two-run homer as the Royals took a potentially important early-season win over their division rivals. Last year, Kansas City won only 6 of 19 against Detroit and finished a game behind the Tigers, who have won the past four AL Central titles. Astros 3, Mariners 2 (10 innings) Jose Altuve notched his eighth consecutive multi-hit game and posted his first career walk-off hit, stroking a one-out single in the 10th inning to score Marwin Gonzalez and lift the Houston Astros to a 3-2 win over the Seattle Mariners. The Astros (15-7) extended their winning streak to seven games, while Seattle (10-12) saw their three-game winning streak end. Angels 6, A's 5 Right-hander Garrett Richards pitched six solid innings and the Los Angeles Angels survived Oakland's furious ninth-inning rally to beat the A's 6-5. The A's trailed 6-2 entering the bottom of the ninth but scored three runs on four hits. With the bases loaded and two outs, A's first baseman Ike Davis hit a deep fly to center off closer Huston Street, but Angels center fielder Mike Trout made a leaping catch near the fence for the final out, sending the A's (9-14) to their fifth loss in six games. Twins 12, White Sox 2 Powered by a seven-run third inning, the Minnesota Twins rolled to a 12-2 win over the Chicago White Sox. The Twins did most of their damage off lefty Chris Sale, who allowed more runs (nine) than in any of his previous 89 MLB starts. Blue Jays 5, Indians 1 The Toronto Blue Jays did all the damage in the fourth inning, scoring five runs on four hits to beat Cleveland 5-1, leaving the Indians anchored at the bottom of the American League Central. National League Nationals 8, Mets 2 The Washington Nationals became the first team this season to inflict a home loss on the New York Mets. Catcher Wilson Ramos had the go-ahead RBI groundout in the fourth inning and added an RBI single in the sixth as the Nationals (10-13) came back from an early two-run deficit to win their third straight. They have scored 34 runs in the three victories. The Mets (15-8) have lost five of seven since a 10-0 homestand. Reds 5, Braves 1 Cincinnati Reds right-hander Mike Leake got his first victory of the season in a 5-1 win over the Atlanta Braves. Leake allowed just two singles over eight scoreless innings and hit the fifth homer of his career. He retired the final 12 batters in faced. Tucker Barnhart, Todd Frazier and Billy Hamilton also homered for the Reds. Cardinals 9, Phillies 3 Third baseman Matt Carpenter, left fielder Matt Holliday and first baseman Matt Adams helped pound Philadelphia into submission as the St. Louis Cardinals scored a 9-3 win over the Phillies. Reliever Carlos Villanueva (2-1) earned the win, pitching 3 2/3 perfect innings after starter Tim Cooney picked up only seven outs in his MLB debut. — Agencies