"It's big anytime you can win a series," said Orioles shortstop J.J. Hardy, who went 4-for-4 with a double and RBI. "It's a long season, so that's the goal. It's nice to do it on the road."
Hardy enjoyed his first four-hit game of the season while extending his hitting streak to five games.
"I hit three ground balls that happened to get hits," Hardy said. "It's not something that I make a huge deal out of, but I'll take them."
Hardy's bat is heating up with the weather. He is hitting .579 (11-for-19) over the last five games.
"The weather, I don't know," was Hardy's guess on his recent tear. "I'm from Arizona. Just takes some time getting in the rhythm, I guess."
Orioles manager Buck Showalter attributes it to being a winner.
"He's just so steady," Showalter said. "He likes to win. He's at the stage in his career where he's had the individual accomplishments and he's established himself as a quality shortstop. He doesn't tolerate the things that aren't conducive to winning."
Hardy drove in a run during Baltimore's three-run fourth inning off Houston starter Bud Norris (5-5), who took the loss despite his fourth straight quality start. Norris yielded nine hits and three earned runs over seven innings, striking out seven while walking just one.
"Bud threw the ball really well," Hardy said. "His slider was nasty."
Astros manager Bo Porter lamented Norris' wasted effort.
"Any time your starter goes seven innings, especially against an offensive ballclub like the Baltimore Orioles, I thought Bud did a tremendous job of keeping us in the game, and it was unfortunate offensively we were not able to muster much this afternoon," Porter said.
Chris Davis started the fourth-inning rally with a single and scored on a double in the alley by Adam Jones. Davis (2-for-5) recorded his 22nd multihit game of the season and has hit safely in his last six games. Matt Wieters moved Jones to third with a groundout to the right side, and Jones scored when Hardy poked a one-out single to right field past Houston's drawn-in infield.
Chris Dickerson made it a three-run fourth inning by reaching on a fielder's choice, moving from first to third on a Ryan Flaherty single and scoring on a wild pitch.
"You've got to put yourself into position to get an easy [run]," Dickerson said of his trek around the bases. "That was kind of what was on my mind, just to find something to go from first to third on -- just be aggressive. It worked out well, and sure enough, [Norris] even spiked a slider and it kicked away from [Astros catcher Jason Castro]."
Astros second baseman Marwin Gonzalez missed a chance to keep the score at 2-1. With two outs, Flaherty broke for second base and stopped well short of the bag. But instead of running Flaherty back toward first base, Gonzalez chose to throw to third to hold Dickerson, with Flaherty easily making it into second base with the Orioles' 18th consecutive stolen base.
"I wasn't really that far off [third base]," Dickerson said. "I was in a safe place, and sure enough they threw over and it wasn't even remotely close. It worked out for the best."
It was enough firepower to make starter Miguel Gonzalez (3-2) a winner. The righty went six innings, striking out seven to tie his season high. He scattered five hits, and the only walk allowed was intentional. After allowing a first-inning run, Gonzalez was for the most part in control.
"I had a good feeling with the baseball and changing speeds, so that helped me out a little bit," said Gonzalez.
Gonzalez yielded a first-inning single to Brandon Barnes, a double to Castro and a J.D. Martinez sacrifice fly that gave the Astros a 1-0 lead.
But only Gonzalez, with a third-inning single, stolen base and sacrifice bunt, advanced past first base after the first inning on the Orioles' starter, who turned in his sixth quality start of the season and 16th in 25 career starts for the Orioles.
Gonzalez took a hard one-hopper off his left forearm off the bat of Martinez in the sixth.
"It was hit pretty hard," Gonzalez said. "I tried to get a glove on it, but it was too tough. I'm alright. It's a little sore. We'll just take it day by day and see what happens."
Gonzalez said he isn't concerned about missing a start.
"It was in the muscle right on the forearm, so no worries about it," he said.
Barnes threatened to tie the game for Houston with one out in the eighth inning. After Marwin Gonzalez singled off reliever Darren O'Day, the Astros' leadoff hitter launched a towering drive to right field. But Dickerson hauled it in at the fence, and Brian Matusz came on to strike out Castro, stranding Gonzalez.
Jim Johnson threw a perfect ninth inning, his fifth straight scoreless outing, to record his fifth straight save and 20th of the season.