Gonzalez gave up just one run over 6 2/3 innings to pitch the Orioles past Texas 3-1 and to a four-game split of a series where the O's lost the first two nights.
Gonzalez has now recorded an Orioles' season-high seven consecutive quality starts, pitching to an ERA of 2.49 in that stretch. He has 12 quality starts on the year in 16 outings.
Gonzalez gave up just four hits with two walks and he fanned four, throwing 104 pitches. He improved to 7-3 with an ERA of 3.48.
In the first two nights of this series, O's starters gave up 12 runs in 10 1/3 frames. The last two nights, Gonzalez and Wei-Yin Chen gave up two earned runs in 13 2/3 innings.
Leading 2-1, Darren O'Day stranded the potential tying run at second base with no outs in the eighth, getting three straight outs against the top of the Texas order. Jim Johnson pitched a scoreless ninth for his 31st save.
Davis set career highs in homers with No. 34 and RBIs with No. 86. The homer snapped an 0-for-17 drought and Davis had been 1-for-24 with 13 strikeouts over his previous seven games.
He is now tied with Frank Howard for third-most homers by an American League player by the All-Star break, trailing only Reggie Jackson (37 in 1969) and Ken Griffey Jr. (35 in 1998).
For Roberts, it was his second homer of the year and snapped a 3-for-25 stretch. It was his first Camden Yards homer since April 4, 2011.
Nate McLouth's two-out RBI single in the eighth provided a big late insurance run as the Orioles improved to 27-19 at home, 4-6 in July and 51-42 overall. They welcome Toronto to town for a three-game series that starts Friday night.