Robert Andino crushed a go-ahead solo home run in the top of the ninth inning to lift the Orioles to a 5-4 victory over the Mariners in the middle installment of a three-game set at Safeco Field.

After Seattle tied the game with a three-run eighth, Baltimore battled back in the ninth as Andino belted a two-out blast over the wall in left off Charlie Furbush (4-2), ending the reliever's streak of 22 2/3 scoreless innings.

Jim Johnson retired the M's in order in the ninth to nail down his 24th save of the season. Darren O'Day (5-0) got the win for recording the final out of the eighth, while starter Wei-Yin Chen struck out a career-high nine batters and carried a perfect game into the seventh inning before giving up a one-out homer to Casper Wells.

"He was outstanding," said Orioles manager Buck Showalter of Chen. "The breaking ball was the sharpest we've seen it. He did a great job moving the ball in the strike zone. I was proud of him. He handled himself really well."

Matt Wieters stroked a two-run single in the sixth to help the Orioles (43-37) ensure a winning record at the All-Star break for the first time since 2005.

Justin Smoak scored once and also knocked in a run for the Mariners, who have lost two of their last three games.

Chen kept the Mariners off the basepaths over the first six frames before Wells broke up everything by ripping a 3-2 fastball over the wall in left.

Michael Saunders then clubbed a one-out double in the eighth, chasing Chen from the game. Pedro Strop entered and fired a wild pitch to move Saunders to third before Smoak delivered a single to center to make it a 4-2 contest.

Dustin Ackley then slapped a single to left and pinch-hitter John Jaso followed with a base hit of his own to plate Smoak and pull the home team within a run.

After Ichiro Suzuki grounded into a fielder's choice, Strop plunked Wells to load the bases before walking Kyle Seager to knot the game.

"Casper kind of got us going with the big at-bat there and the fight that we had after that, nobody saw that coming," said Seattle manager Eric Wedge. "Guys had some good AB's and got us right back in it, tying the ball game."

O'Day then retired Jesus Montero to end the eighth and Andino followed in the ninth with his fourth home run of the year and his first since May 7.

Baltimore built its lead with a four-run sixth. Xavier Avery singled to start the frame and J.J. Hardy followed with a base hit to Saunders in center field, who had the ball trickle past him, allowing Avery to move to third.

Chris Davis then scorched a single into center to plate Avery and Adam Jones followed suit with a liner back up the middle to score Hardy from second for a 2-0 lead.

A Jim Thome groundout put runners on second and third before Wieters laced a single to center to plate both runners and chase Seattle starter Felix Hernandez from the game.

Game Notes

The Orioles improved to 31-0 when leading after seven innings...Hernandez was charged for four runs on eight hits with eight strikeouts over 5 1/3 innings...July, 13 1991 was the last time the O's threw a no-hitter and they have never thrown perfect game in franchise history...The Orioles lead the all-time series 200-172...Baltimore placed second baseman Brian Roberts on the 15-day disabled list and recalled Avery from Triple-A before the game.