Happ (2-1) allowed only one run and walked one. In 20 2-3 innings over his first three starts, the left-hander had nine strikeouts, three in seven innings of a loss to the Rangers.
Fernando Rodney worked a perfect ninth with two strikeouts for his sixth save in seven chances, and second in as many nights in Texas.
Nelson Cruz had three hits for Seattle, including a triple and double in the same game for the second time in his career. The other was at Boston in June 2009 while playing for the Rangers.
The Mariners went ahead to stay in the fourth after a leadoff triple by Cruz, who scored on Kyle Seager's groundout. Weeks followed with his 150th career homer, his second with the Mariners, to make it 2-0.
Rangers lefty Ross Detwiler (0-3) struck out five while allowing two runs in 5 1-3 innings. He lowered his season ERA from 10.95 to 8.66.
Detwiler, the offseason addition who was a reliever for Washington last year, pitched for the first time in nine days. Texas skipped his previous turn in the rotation during a stretch with off days to allow him to work more with pitching coach Mike Maddux.
Happ struck out the side in the fourth and fifth, though the last strikeout in the fourth came after giving up a single and a walk to consecutive batters with two outs.
Those two runners were the only ones allowed by Happ during a stretch of nine batters when he struck out seven.
Jake Smolinski had a leadoff single in the seventh and scored on a two-out double by Delino DeShields.
Smolinski played right field, with struggling Shin-Soo Choo (.096 batting average) getting a night off. Smolinski misplayed a deep fly by Cruz in the fourth, overrunning a ball that was ruled a triple.
Mariners: Relief pitcher Tom Wilhelmsen, on the disabled list since April 13 with a hyperextended right elbow, played catch in the outfield for about 25 minutes before the game. He could throw a bullpen session Friday.
Rangers: LHP Derek Holland said he feels great, but is still about 10 days from being able to play catch. Holland strained his left shoulder after throwing only one inning in the home opener April 10. He will not throw again until a scan shows the shoulder is healed. The next scan is expected to be done May 8. ... 1B Mitch Moreland was scratched from the starting lineup because of tightness in his left elbow, where he has a bone chip.
Mariners: Felix Hernandez makes his 44th career start against Texas, the right-hander's most against any team. He struck out 12 in seven innings to beat the Rangers at home April 18, but is 13-21 against them.
Rangers: Wandy Rodriguez makes his second start for Texas since initially joining the team on a minor league deal April 6. The only time he has faced Seattle before, he allowed one run in 7 2-3 innings to win against Hernandez. That was in 2007 when Rodriguez was still pitching for Houston.