HOUSTON — Just as in his last start, Collin McHugh said things were tough from the first pitch.
This time, though, McHugh was able to keep it close until the Astros scored some runs.
Rasmus hit a mammoth solo shot into the upper deck in right field in the sixth to give the Astros a 3-2 advantage. Valbuena connected for his team-leading 10th homer in the first.
"There's something to it, the way things ended last year," Rasmus said of homering against his former team. "I was happy to help my team rather than do something against them."
McHugh (5-1) allowed two runs and six hits. He struck out nine.
"Three or four (times) they had guys on second with nobody out," McHugh said. "You have to pitch in high stress situations. But we were able to battle through it. We've been doing it all year. Making a pitch when we need it."
The right-hander was coming off his worst start of the season after being tagged for seven runs against San Francisco, a loss that ended a streak of a win in 11 straight decisions.
"He was under duress every inning," Houston manager A.J. Hinch said. "He had the leadoff batter on base the first four innings. That's not easy. He got out of it a couple of times. A couple of times they scored. But they never really got to him. He controlled the damage."
McHugh is 14-7 with a 2.80 ERA in his last 27 starts dating to last May 27.
Pat Neshek was perfect in the eighth and Luke Gregerson pitched the ninth for his 10th save.
In improving the AL's top record to 25-13, Houston matched the 1998 club for best 38-game start in franchise history. It was the Astros' first four-game sweep of the Blue Jays and second sweep of Toronto after taking a three-game series in June 2005.
The Blue Jays tied it at one on Jose Bautista's sacrifice fly in the third.
Ryan Goins' sacrifice fly in the fourth gave Toronto a 2-1 lead, but Jonathan Villar's RBI double to left knotted it at 2 in the bottom half.
Toronto went 1-6 on its road trip.
"We just got our butt whooped here," Toronto manager John Gibbons said. "You don't need to dissect it any more than that. That's just the way it goes sometimes."
Jake Marisnick upped Houston's lead to 4-2 with a sacrifice fly in the seventh.
Mark Buehrle (5-3) had a third straight solid outing, giving up four runs and six hits with five strikeouts in a season-high eight innings.
It was Buehrle's first complete game since July 25, 2013, against the Astros. Buehrle has allowed seven runs in 19 innings over his last three starts after being tagged for 13 runs in 10 innings in the prior two starts.
"It's not good," Buehrle said of how Toronto's been playing. "I'm stating the obvious right now when I say that we stink. We are not playing very good in every aspect. When we're pitching good, we're not hitting. When we hit and score runs, which we have done most of the year, we are not doing a good job of pitching."
Blue Jays: 2B Devon Travis did not play after leaving Saturday's game with left shoulder irritation after striking out in the seventh.
Blue Jays: RHP Aaron Sanchez (3-3) will try to bounce back after allowing a season-high five runs in a loss to Baltimore Wednesday as Toronto opens a four-game series at home against the Angels.
Astros: RHP Lance McCullers will make his MLB debut Monday to start a three-game series against Oakland. McCullers, who was the 41st pick in the 2012 draft, was promoted to Triple-A Fresno Thursday from Double-A Corpus Christi, but he did not pitch a game for Fresno.
"It feels good to walk in here and know I've accomplished my life long goal," McCullers said. "It's surprising because I had just gotten to Fresno and expected to be there."
Valbuena and Morgan Ensberg, who had 11 in in 2006, are the only third baseman in Astros history to record 10 homers in the club's first 38 games. Of Valbuena's 10 long balls, nine have been solo shots. Rasmus' homer was his third go-ahead homer this season.