Winners of 12 of their last 14 games, the Reds hold a 1 1/2-game lead over the Pirates in the National League Central. They sit a season-high 16 games above .500.
The Reds converted in the first inning on singles by Drew Stubbs, Brandon Phillips and Frazier, taking an early 1-0 lead against Astros starter Wandy Rodriguez.
In the third, Stubbs led off with a single and stole second base as Phillips struck out. Ryan Ludwick brought Stubbs to the plate with a double. After Scott Rolen walked, Chris Heisey scored Ludwick with a single, giving the Reds a 3-0 lead.
With a 3-2 lead after six, the Reds added two runs in the seventh and three in the eighth off the Astros bullpen. The Astros plated a run in the bottom of the eighth to pull within five.
The Reds were 7-for-16 with runners in scoring position and scored eight runs, their most since July 2 in Los Angeles against the Dodgers. Hitters 2-5 in the lineup -- Stubbs, Phillips, Ludwick and Frazier -- finished 11-for-24 with seven runs and four RBIs.
"It was a complete team victory tonight," manager Dusty Baker said. "Well deserved rest after that game."
The teams left a total of 28 runners on base in the game -- 15 for the Reds, 13 for the Astros -- and it lasted nearly four hours. Frazier said the relatively comfortable win was welcome amid a stretch of close victories since the All-Star break.
"It took us a little while to get it there," Frazier said. "It was such a long game, it was really tough to think about anything. It gives [closer Aroldis] Chapman a nice break and some other guys as well. Get a good night's rest tonight and I think we'll be refreshed tomorrow."
Starter Mat Latos gave up eight hits and two runs in five innings, earning his first win since June 30. He hasn't pitched past the fifth inning in three starts since the All-Star break, posting a 5.52 ERA in 14 2/3 innings. His ERA in three starts against the Astros this season is 6.75.
During the fifth inning, Latos came up limping after a bloop double from Marwin Gonzalez. Baker and the trainers headed out to the mound, but Latos threw a few warmup pitches and stayed in the game. He gave up both runs after the visit to the mound, and the official diagnosis after the game was a sprained left ankle.
"I felt it the rest of the inning, especially the last couple of pitches," said Latos, who had the left ankle taped postgame. "But it's fine now."
Baker said he could tell that Latos overstrided on the mound.
"He's doing better," Baker said. "We'll know more tomorrow. Right now, it looks like he's OK."
Houston loaded the bases with two outs against Latos in the second, fourth and fifth innings, but the right-hander was able to induce three popups -- two from Rodriguez, one from catcher Chris Snyder -- and escape the tricky situations without major damage.
"I was jamming them and getting into counts where I could get a pitch in on the hands," Latos said.
Miguel Cairo pinch-hit for Latos to open the sixth inning. Latos threw 95 pitches, 58 for strikes, and struck out three.
Relievers Jose Arredondo, Bill Bray, Sam LeCure and Sean Marshall finished off the victory, giving up one run over the final four innings. Latos said he thought the bullpen deserved the win more than he did.
Third baseman Chris Johnson led the Astros' 11-hit evening with four hits in his first four at-bats.
"I'm just feeling comfortable at the plate," Johnson said.
The Astros may be at the bottom of the NL Central, but Baker won't be taking them lightly on Tuesday or Wednesday.
"Their record isn't good right now but they never quit," Baker said. "You can see, they kept fighting and fighting and we had to add on some more runs and get out of some tough jams and got the win."