HOUSTON -- Chris Johnson had been waiting all season to hit his first home run.
After finally knocking one out of the park in his first at-bat Wednesday, there was almost no wait for No. 2.
Johnson had a pair of homers in consecutive at-bats among his four hits and drove in a career-high six runs to back up another solid outing by Wandy Rodriguez, and the Houston Astros beat the New York Mets 8-1 to complete a three-game sweep.
"It was a special day," Johnson said. "This is probably my best day in the major leagues. This is something I'll never forget."
The win gave Houston its first series sweep of the season and first series win since the opening three games.
"The biggest thing is these guys are realizing that the things they are doing wins games," Houston manager Brad Mills said. "And if they do these things, we can continue to win games."
Johnson's first homer of the season off Chris Schwinden (0-1) was a three-run shot to the Crawford Boxes in left field that put Houston up 3-0 in the second inning. Jed Lowrie and Brian Bogusevic reached on consecutive singles.
Johnson went deep again in his next at-bat, this one a two-run homer to left center that pushed the lead to 5-0. It was the first career multi-homer game for Johnson and first by an Astro this year.
Johnson has been playing well this season after a tough year in 2011 when he struggled and spent time in Triple-A. But he was still bothered seeing the zero on the board on his home run total.
"It was a little frustrating, but there was no panic," he said. "I was working on my approach mainly and I got a couple today."
Rodriguez (3-2) yielded six hits and a run in seven innings to lower his ERA to 1.64. He has won three in a row and allowed just three runs combined in those starts after opening the season with two consecutive losses.
Schwinden allowed six hits and five runs in four innings in his second start of the season. He also pitched four innings in his other start this season, an 18-9 loss at Colorado in which he received a no decision.
Mets manager Terry Collins wasn't ready to say if Schwinden would keep his starting spot after Wednesday's struggles.
"I'm not committing to anything," Collins said. "Things change in this game."
Schwinden knows that the team isn't happy with his pitching.
"I think their patience is kind of wearing a little bit with my performance," he said. "I just have to keep my head on straight, and if I get another opportunity, try to go for it."
The Astros tacked on three runs in the fifth inning with an RBI double by Bogusevic, and run-scoring singles by Johnson and Jason Castro. Johnson added a single in the seventh, but Castro grounded into a double play to end the inning.
Houston piled up 15 hits, including three from Lowrie and two apiece from Carlos Lee, Bogusevic and Castro.
After losing six games this season by one run, the Astros were happy to get two straight decisive wins this week.
"We've been in so many close games and been so close, but these three games we just went out there and it was nice to blow people away," Lee said.
David Wright walked in the fourth inning, stole second base and scored on a single by Andres Torres to leave Houston up 5-1. Wright tripled with one out in the eighth, but reliever David Carpenter retired the next two batters to leave New York empty-handed.
The Mets had trouble stringing hits together against Rodriguez. They got more than one in an inning just once while he was pitching. A single by Kirk Nieuwenhuis followed a double by Scott Hairston in the sixth, but Rodriguez retired the next two batters to get out of the inning.
Houston center fielder Jordan Schafer walked in the first and stole second. He has now reached base safely in each of the 24 games he's played this season -- the second-longest streak to start a season in franchise history.
New York's Ruben Tejada hit a leadoff double, but was thrown out at third trying to stretch it for a triple. He singled in the third and added a double in the fifth inning.
Mets OF Lucas Duda, who has been out of the lineup for the last two games with flulike symptoms, was in the original lineup Wednesday, but a late change left him out of the starting lineup. Nieuwenhuis took his spot in the batting order, Hairston moved to right field and Nieuwenhuis played left. ... Schafer, who sat out Tuesday after experiencing soreness in his left side, started on Wednesday, but was replaced by Justin Maxwell for the fifth inning because of tightness in his lower back. Houston is off on Thursday and Mills said he expects Schafer to be ready to play on Friday.