In a wild game before 39,129 fans, each team slugged four home runs and the Orioles rallied from a four-run deficit against one of the best pitchers in the game.
Zimmerman hit solo homers in the first and fourth innings before adding a two-run drive in the fifth, all off Chris Tillman. He got a chance at a fourth homer but struck out in the seventh.
Davis hit a solo drive in the fourth and capped a six-run seventh with his major league-leading 19th homer, a two-run shot off Tyler Clippard.
Johnson (1-1) pitched 2 1-3 innings and Jim Johnson worked a perfect ninth for his 16th save.
Baltimore trailed 6-3 in the seventh before rallying against Jordan Zimmermann (8-3), who gave up seven runs and 10 hits in six-plus innings. He came in with a 1.71 ERA and a streak of 15 straight starts allowing three runs or less.
CUBS 9, WHITE SOX 3
CHICAGO (AP) — Dioner Navarro had the first three-homer game of his career, connecting from both sides of the plate at Wrigley Field to lead the Cubs over the White Sox.
Navarro had never homered more than once in a game, but he got his swing going while driving in a career-high six runs and scoring four times. He hit a solo homer in the second to break a 1-all tie and added a two-run shot off John Danks (0-1) in the fourth. He then sent a towering shot to the street beyond the right-field bleachers for a three-run homer off Brian Omogrosso in the seventh.
Scott Feldman (5-4) went six innings, allowing two runs and six hits. He struck out seven without a walk and improved to 5-1 in his past seven outings.
CARDINALS 5, ROYALS 3
ST. LOUIS (AP) — Pinch hitter Daniel Descalso hit a two-run single with the bases loaded to snap an eighth-inning tie and help St. Louis rally past scuffling Kansas City.
Luis Mendoza got his first career hit and RBI and held the Cardinals to a run in 5 2-3 innings before the bullpen failed for the Royals, who have lost a season-worst eight in a row.
Matt Holliday and Carlos Beltran homered for the Cardinals, who have won seven of eight and lead the majors with a 35-17 record. Randy Choate (1-0) got the last out in the eighth and Edward Mujica finished for his 17th save in 17 chances.
Beltran hit his 12th homer off Aaron Crow (0-1) to open the eighth.
METS 9, YANKEES 4
NEW YORK (AP) — Slumping infielders Ike Davis and Ruben Tejada sparked a five-run first inning that kept the Mets sailing along in this surprising Subway Series with a victory over the Yankees.
Tejada hit a leadoff single, Davis drove in two runs and the Mets won with Jeremy Hefner (1-5) on the mound for the first time all season. They've taken three in a row from their crosstown rivals for their first four-game winning streak of the year.
Yankees starter David Phelps (3-3) got only one out — and perhaps he wasn't completely healthy. The right-hander, who had unusual trouble with his command, left his previous outing after he was hit on the right forearm by a line drive.
ANGELS 4, DODGERS 3
ANAHEIM, Calif. (AP) — Jered Weaver pitched six strong innings in his first start in nearly eight weeks and Mark Trumbo hit a go-ahead two-run homer as the Angles beat the Dodgers.
The Angels tied a season high with their fifth straight home win while snapping a two-game skid.
Weaver (1-1) allowed one run and five hits, struck out seven and walked none in his first home start of the season and 100th of his career at Angel Stadium. The right-hander came off the disabled list, where he'd been since April 9 with a broken left elbow that occurred when he was trying to get out of the way of a line drive at Texas.
Chris Capuano (1-4) gave up three runs and six hits in 5 2-3 innings. He walked four.
PIRATES 5, TIGERS 3
PITTSBURGH (AP) — Pedro Alvarez's two-run double sparked a seventh-inning rally that lifted Pittsburgh over Detroit.
Travis Snider added an RBI double and Jordy Mercer laid down a perfect suicide squeeze as the Pirates erupted late against Anibal Sanchez (5-5) and scored four times.
Miguel Cabrera hit his 15th homer of the season for Detroit. He flied out to the right-field wall with a runner on to end the game as Pittsburgh beat the Tigers for the second straight night.
Bryan Morris (2-2) picked up the win in relief of A.J. Burnett. Jason Grilli pitched the ninth for his major league-leading 22nd save.
PHILLIES 4, RED SOX 3
PHILADELPHIA (AP) — Domonic Brown hit a pair of homers, Erik Kratz and Ryan Howard also had solo shots to back Kyle Kendrick and Philadelphia beat Boston.
Kendrick (5-3) allowed two runs and four hits in six innings, helping the Phillies win their second straight against the Red Sox to get within one game of .500.
Antonio Bastardo pitched the seventh, Mike Adams struck out two in a perfect eighth and Jonathan Papelbon finished for his 11th save in 11 tries. Papelbon allowed an RBI single to Jacoby Ellsbury, snapping his scoreless string at 19 1-3 innings.
John Lackey (3-5) pitched six innings, allowing three runs on three hits and three walks.
BLUE JAYS 3, BRAVES 0
ATLANTA (AP) — Melky Cabrera had three hits, including a two-run single, and four Toronto pitchers combined on a four-hitter to lead the Blue Jays past Atlanta.
Last-place Toronto went with a pitcher-by-committee approach to fill a hole in the rotation. Esmil Rogers lasted 3 1-3 innings in his first start since 2011, and two pitchers just up from the minors shut down the Braves. Juan Perez (1-0) went 2 2-3 innings, Neil Wagner got through the seventh and eighth, and Casey Janssen earned his 11th save with a 1-2-3 ninth.
Atlanta starter Kris Medlen (1-6) took a liner off the left leg in the second and didn't return the next inning because of a contusion to his upper calf. He is expected to make his next start.
TWINS 4, BREWERS 1
MINNEAPOLIS (AP) — Aaron Hicks homered again and made another run-saving catch for Minnesota, helping Samuel Deduno and the Twins beat Milwaukee.
Deduno (1-1) pitched into the eighth inning, the longest start for a Twins pitcher in more than a month, and gave up four hits and one run. He beat Marco Estrada (4-3), who was done in by a three-run first as the Brewers lost their fifth straight game.
The night before in Milwaukee, Hicks had a home run and a double that set up the go-ahead run in the 14th inning. The rookie centre fielder also made a jumping grab at the wall to take a homer away from Carlos Gomez. This time, Hicks snagged a sinking liner by Rickie Weeks to end the fourth.
RAYS 3, MARLINS 1
MIAMI (AP) — Roberto Hernandez bounced back from two rough outings and pitched 8 2-3 innings to help Tampa Bay send Miami to its season-worst eighth straight loss.Kelly Johnson and Yunel Escobar each drove in a run as the Rays won their fourth in row. Tampa Bay has taken 12 of its last 13 against the Marlins and is an AL-best 8-1 in interleague play.
Hernandez (3-5) limited Miami to just one unearned run and three hits, striking out five. After Chris Coghlan's leadoff double, Hernandez retired 26 of the next 27 batters, including 15 in a row.
Fernando Rodney got his 10th save in 15 opportunities.
Tom Koehler (0-3) gave up three runs and seven hits in eight innings for the Marlins.
INDIANS 5, REDS 2
CLEVELAND (AP) — Justin Masterson pitched six solid innings, Jason Giambi and Mark Reynolds homered, and Cleveland broke a five-game losing streak with a win over Cincinnati.
Masterson (8-3) worked out of a bases-loaded jam with nobody out in the sixth to preserve a 2-1 lead. Cincinnati's only run off the right-hander came on Joey Votto's two-out homer in the first.
Giambi's three-run homer in the sixth off Bronson Arroyo (5-5) pushed the margin to four runs for Cleveland, which scored only 14 runs during the skid.
Reynolds' homer to lead off the third tied the game before Nick Swisher's RBI double gave the Indians a 2-1 lead in the fourth.
PADRES 3, MARINERS 2, 10 INNINGS
SAN DIEGO (AP) — Eric Stults had a career-high 12 strikeouts and Will Venable drove in the winning run as San Diego rallied in the bottom of the 10th to beat Seattle.
Venable's third game-ending hit drove home Chris Denorfia from third to complete an improbable comeback after the offence struggled mightily through the first eight innings.
Kyle Blanks forced extras in the bottom of the ninth with a one-out sacrifice fly off Mariners closer Tom Wilhemsen, who blew his second save in 13 tries. Jason Bay homered off Padres closer Huston Street to give Seattle a 2-1 lead in the ninth.
Luke Gregerson (3-2) earned the win, while Yoervis Medina (1-1) took the loss.
ASTROS 6, ROCKIES 3
DENVER (AP) — J.D. Martinez hit a go-ahead RBI single in the eighth inning, Carlos Pena connected for a home run as part of a three-run ninth as Houston rallied against Colorado's bullpen.
The Astros overcame 12 strikeouts and Troy Tulowitzki's first multihomer game since 2011 in taking the opener of a two-game set at Coors Field.
Paul Clemens (3-2) pitched 1 2-3 innings of scoreless relief.
Marwin Gonzalez led off the eighth with a single off reliever Edgmer Escalona (1-2). Jose Altuve was intentionally walked and Rex Brothers relieved Escalona. Brothers struck out Jason Castro but Martinez hit a two-out single up the middle, scoring Gonzalez to put the Astros in front by a run.
ATHLETICS 9, GIANTS 6
SAN FRANCISCO (AP) — Tommy Milone won his second straight decision following a five-start skid, pinch-hitter Nate Freiman had a two-run single, and the Athletics beat the Giants for their sixth straight win.
Yoenis Cespedes hit an RBI triple in the first to extend his career-best hitting streak to 11 games, and Jed Lowrie added an RBI double as the A's (31-23) moved a season-best eight games above .500 for the first time since they were 12-4 on April 17. They won for the 11th time in 12 games.
Milone (5-5) outpitched Tim Lincecum and got plenty of support, too. He received three or fewer runs of support in each of his previous seven outings.
Hunter Pence homered for the second straight game and Brett Pill also connected for San Francisco.