Chris Johnson homered and drove in three runs and J.D. Martinez hit a two-run homer to lead the Houston Astros to a 7-1 win over the Cleveland Indians on Sunday.

The victory gave Houston a series win for the first time since taking two of three from the White Sox June 8-10.

Houston starter J.A. Happ (6-7) got his second consecutive win by allowing four hits and a run in seven innings.

Johnson's run-scoring single in the fourth tied it at 1-1 and Carlos Lee put Houston on top with an RBI single in the sixth.

Johnson's two-out, two-run opposite field shot to the stands in right field stretched Houston's lead to 5-1 in the eighth. Martinez's homered to left later in the inning.

Cleveland's Derek Lowe (7-6) gave up eight hits and three runs in 6 2-3 innings to leave him with just one win in his last seven starts.

Johnson has heated up lately with 10 hits in the last five games after getting just one in the previous five. He's had five RBIs in the last two games after not driving in a run in the previous 11 games.

Jose Lopez doubled to start the second inning and moved to third on a groundout by Michael Brantley. He put Cleveland up 1-0 when he scored on a wild pitch by Happ, who then walked Shelley Duncan before a single by Casey Kotchman, but Happ retired the next two batters to limit the damage.

Happ didn't allow another hit until Kotchman led off the fifth with a single. Lowe had a bunt single with one out, but Happ retired the next eight batters he faced before he was replaced for the eighth inning.

The Indians couldn't get much going offensively this weekend. They scored just four runs in the three-game series after piling up 21 runs in a three-game sweep of the Reds in their last series

The Astros didn't get a hit until a single by Lee with two outs in the fourth inning. Brian Bogusevic singled on a ball that was deflected by second baseman Jason Kipnis, before an RBI single by Johnson tied it at 1-all.

Jed Lowrie doubled down the right field line with one out in the sixth inning before Lee's bouncing single got by a diving Kipnis to score Lowrie and put Houston on top 2-1.

Johnson and Jason Castro hit consecutive singles to start Houston's seventh. Johnson scored to make it 3-1 when Martinez grounded into a double play. Asdrubal Cabrera had a nifty backhanded flip to second base to get the double play going.

Jordan Schafer drew a walk to chase Lowe and pinch-hitter Matt Downs singled off reliever Joe Smith, but Smith retired Brian Bixler to end the inning.

Houston second baseman Jose Altuve strained his right hamstring running trying to beat a throw to first base in the fourth inning. He was replaced by Bixler.

NOTES: Houston starter Bud Norris, on the DL with a sprained left knee, pitched five innings in a rehabilitation assignment for Triple-A Oklahoma City on Saturday night. He allowed two runs and three hits with seven strikeouts. ... The Astros agreed to a contract with C Tyler Heineman, an eighth round pick in this year's draft. ... Houston left-hander Wandy Rodriguez opposes San Diego's Ross Ohlendorf when the Astros and Padres open a four-game series on Monday. ... Josh Tomlin pitches for Cleveland when the Indians open a series against Hiroki Kuroda and the Yankees on Monday.