The game was tied at 1 when Gonzalez launched his homer about 10 rows into the stands in right field to start Houston's third. Gonzalez, who bats ninth, hit just four home runs in 80 games last season and has three in 16 this year.
Houston got an insurance run when Hisashi Iwakuma (2-1) hit Justin Maxwell with a pitch with the bases loaded later in that inning.
Norris (3-2) allowed a season-high eight hits in five innings, but was much better than last time out, when he yielded six runs in 2-3 innings.
Houston closer Jose Veras pitched a perfect ninth for his second save in three opportunities.
Iwakuma struck out a season-high 11, but the six hits he gave up were also the most he's allowed this year. It's his first loss since September 14, and breaks a career-best five game winning streak.
Kendrys Morales extended his hitting streak to six games when he homered for the second consecutive game with a solo shot to center field in the eighth to cut the lead to 3-2.
Houston had retired eight in a row, including six straight by Travis Blackley when the homer by Morales chased him with no outs in the eighth. Hector Ambriz sat down the next three batters, with two strikeouts, to end the inning.
Seattle won the opener of this series 7-1 behind Felix Hernandez's 100th career win and three homers. But they couldn't string together many hits in this one and have failed to win consecutive games since the first two games of the season.
Jason Castro walked with two outs in the first before a single by Chris Carter to left fielder Raul Ibanez. An error by Ibanez on the play allowed Castro to score to put Houston up 1-0.
Dustin Ackley singled with one out in the second before scoring on a two-out double by Endy Chavez to tie it at 1-all. Chavez got caught in a rundown trying to stretch the hit to end the inning.
Gonzalez led off Houston's third with his home run to put Houston up 2-1. Jose Altuve and Fernando Martinez followed with back-to-back singles. They both advanced on the throw from center fielder Chavez on the hit by Martinez.
Iwakuma intentionally walked Carlos Pena with two outs to load the bases and plunked Maxwell on the left hand to send home another run and push the lead to 3-1.
Iwakuma limited the damage by retiring Rick Ankiel to end the inning.
Brandon Barnes replaced Maxwell in center field for the fourth inning. The team said he left to have X-rays on his left hand.
NOTES: Houston tied a season-high with 15 strikeouts. .. The series wraps up on Wednesday when Seattle's Joe Saunders opposes Lucas Harrell. ... Seattle's Kyle Seager extended his career-long hitting streak to 12 games. ... Seattle placed OF Franklin Gutierrez on the 15-day disabled list with a strained right hamstring. Gutierrez was injured on Monday night trying to make a diving catch in the fourth inning against the Astros. He has struggled with injuries in his career, and this is the fifth time he's been on the disabled list since the beginning of the 2011 season. The Mariners recalled Carlos Peguero from Triple-A Tacoma to take his spot on the roster. ... Montero's home run on Monday night traveled 441 feet, which is the longest home run hit in Houston this season and the second-longest of his career. ... LHP Xavier Cedeno, who was designated for assignment on Thursday, was claimed off waivers Tuesday by Washington.