HOUSTON -- J.J. Hardy isn't sure why he always starts slow in April before his hitting picks up in May and June.
He said he thinks it could have something to do with growing up in Arizona and not being accustomed to the cold Baltimore spring.
Hardy hit just .202 in April, but has raised his average to .266 since then thanks in part to a recent five-game hitting streak where he has gone 11 for 19 with three homers, two doubles and five RBIs.
"I'm feeling a little bit better," he said. "You look at today's game, I hit three groundballs that happened to get hits. It's not something that you make a huge deal out of, but I'll take them."
Manager Buck Showalter loves what Hardy brings to his team and raved about the way he goes about his work.
"His style is his substance," Showalter said. "He's just so steady, a steady human being. J.J, he likes to win. He's at a stage in his career where he has individual accomplishments, he's established himself as a quality shortstop. He doesn't tolerate things that aren't conducive to winning, especially from himself."
Gonzalez (3-2) yielded five hits and a run in six innings, and matched his season-best with seven strikeouts. He slowed down the Astros a day after they hit six home runs in an 11-7 win.
The Orioles won their third straight series by taking two of three from Houston.
Brandon Barnes led off for Houston with a single, Jason Castro hit a one-out double and J.D. Martinez had a sacrifice fly that made it 1-0 in the first. That was the only inning the Astros got more than one hit.
Gonzalez was glad he was able to get back on track after giving up a run in the opening frame.
"It was a relief," he said. "You get there and you get your confidence back and just make good pitches after that."
Barnes said Gonzalez made it difficult for them to get anything going.
"He mixed things up real well today," he said. "He threw his pitches well in and out, up and down. He really had his fastball going today."
It was a good beginning to the month for Gonzalez, who had a tough May, going 0-1 in four starts in the month. Baltimore scored just seven runs combined while he was pitching in those starts.
"It's part of baseball," he said. "Sometimes you're going to have good luck and sometimes you're going to have bad luck. I had a good feeling with the baseball and changing speeds, so that helped me out a little bit."
Gonzalez has a bruised left forearm after being hit by a single hit by J.D. Martinez in the sixth inning, but he said he'll be OK.
Chris Davis singled to start the Baltimore fourth and scored on a double by Jones to tie it. Jones advanced to third on a groundout and scored on a single by Hardy for a 2-1 lead. A wild pitch by Bud Norris gave the Orioles another run in the inning.
Norris (5-5) allowed nine hits while striking out seven in seven innings.
Marwin Gonzalez hit a leadoff single in the Houston eighth and Barnes hit a deep fly.
Jose Cisnero threw two scoreless innings with three strikeouts for Houston.
Baltimore's Jason Hammel opposes Tampa Bay's Chris Archer when the Orioles open a three-game series with the Rays on Friday. ... Houston will send Jordan Lyles to the mound against James Shields when the Astros begin a three-game series at Kansas City. ... The Orioles placed reliever Steve Johnson on the 15-day disabled list with a left oblique strain and recalled OF Xavier Avery from Triple-A Norfolk. ... Baltimore OF Nick Markakis is expected to rejoin the team on Friday after missing two games to attend his grandmother's funeral. ... Houston 2B Jose Altuve got a day off on Thursday while dealing with a sore groin. Manager Bo Porter said he expects him to return to the lineup on Friday.