KANSAS CITY, Missouri (AP) -- Danny Duffy carried a perfect game into the seventh inning and Billy Butler drove in the only run as the Kansas City Royals held on to beat the Baltimore Orioles 1-0 in the American League on Saturday.
The 25-year-old Duffy (2-3) retired the first 20 batters he faced, rarely running the count to three balls and flirting with the first perfect game in franchise history. Adam Jones finally ended it with a weak groundball up the middle with two outs in the seventh.
Duffy bounced back to get Chris Davis on a fly out to end the inning, then gave up a single to Nelson Cruz to start the eighth. Wade Davis retired the next three batters, and All-Star closer Greg Holland survived a bases-loaded jam in the ninth for his 11th save.
In the National League, Paul Goldschmidt homered twice, had a career-high six RBIs and set a team record with five runs scored to help the Arizona Diamondbacks down the Los Angeles Dodgers 18-7.
The Diamondbacks hired Hall of Fame manager Tony La Russa as chief baseball officer before the game and scored seven runs in the second inning off two-time Cy Young pitching award winner Clayton Kershaw (2-1).
The Dodgers came storming back with a five-run sixth to pull within 9-7, but Arizona kept hitting to set a team record for runs.
Goldschmidt hit a three-run homer in the seventh inning, added a two-run shot in the eighth and had two doubles to finish 4 for 5.
Arizona hit five homers and had 21 hits, including a team-record 13 for extra-bases to emphatically end a seven-game home losing streak to the Dodgers.
At San Francisco, Giancarlo Stanton homered and tripled to lead the Miami Marlins past the Giants 5-0.
Tom Koehler (4-3) struck out seven in seven innings to finally win in five tries away from South Florida after coming into his outing 0-3 on the road to start the year. He allowed four hits and walked two in his first road victory since Sept. 22 at Washington.
Garrett Jones hit an RBI triple, Jarrod Saltalamacchia had a sacrifice fly and Adeiny Hechavarria singled in a run for Miami. The Marlins improved to 11-2 at AT&T Park since 2011.
In other NL games, Seth Smith homered against his former team early and Carlos Quentin added a two-run, pinch-hit home run as San the Diego Padres hung on to beat the Colorado Rockies 8-5, the Chicago Cubs blanked the Milwaukee Brewers 3-0, the St. Louis Cardinals downed the Atlanta Braves 4-1, the Philadelphia Phillies trounced the Cincinnati Reds 12-1 and the New York Mets were 5-2 winners over the Washington Nationals.
In the day's interleague game, Mark Teixeira hit a two-run homer and Zoilo Almonte connected in his first start of the season as the New York Yankees went deep five times for a 7-1 victory over the Pittsburgh Pirates.
Brett Gardner and Alfonso Soriano also homered off a struggling Edinson Volquez to back five scoreless innings from David Phelps (1-0). Brian McCann added a two-run drive in the eighth.
Starling Marte homered and had three hits in his return to the starting lineup for the Pirates.
In the AL, C.J. Wilson allowed five hits in his second career shutout and Grant Green homered to lead the Los Angeles Angels over the Tampa Bay Rays 6-0.
Wilson (5-3) threw 127 pitches, struck out five and escaped a bases-loaded jam in the seventh by inducing his third double-play grounder of the game.
In other AL games, the Toronto Blue Jays beat the Texas Rangers 4-2, the Oakland Athletics downed the Cleveland Indians 6-2, the Detroit Tigers defeated the Boston Red Sox 6-1, the Minnesota Twins edged the Seattle Mariners 4-3 and the Houston Astros outlasted the Chicago White Sox 6-5.