SEATTLE -- Derek Holland pitched into the eighth and Adrian Beltre hit a two-run homer to help the Texas Rangers hang on against the Seattle Mariners 3-2 on Friday night at Safeco Field.

Holland (6-4) entered the game with a 5.05 ERA and only one scoreless start in 2012, which was when he threw six innings at Baltimore on May 10.

Friday, he threw 7 2/3 innings, struck out four, walked two and didn't allow a run. Two of the four hits he gave up were to Casper Wells, and all were singles. Holland had thrown a previous high of 7 1/3 innings three times this season.

Seattle starter Kevin Millwood (3-7) threw 6 2/3 innings, allowed three earned runs on eight hits and two walks. He struck out four.