HOUSTON -- In a season with more downs than ups, Carlos Zambrano was happy to end on a high note.
Zambrano's season will likely be remembered for his June dugout tantrum that led to his suspension and anger-management counseling. But Zambrano (11-6) wants to focus on finishing 8-0 in his 11 starts since returning to the rotation.
"I came back strong after the suspension and I did what I have to do to come back and be ready to finish the season the way I did," Zambrano said. "It was pretty nice to see every time I go to the mound it was the same Carlos Zambrano from two or three years ago, throwing six, seven, eight innings every time."
Marlon Byrd drove in three runs for the Cubs, who have won five of six. Chicago is 17-4 on the road since interim manager Mike Quade took over on Aug. 23.
Chicago was leading 4-0 before Ramirez's first slam since August 2008 stretched the lead and chased Astros starter J.A. Happ in the fourth.
Happ (6-4) allowed a season-high eight hits, tied season and career highs with seven earned runs and walked five in three-plus innings.
"We kept thinking that he was going to hit his stride," Houston manager Brad Mills said. "Finding that release point was difficult. In the past, in his real good starts, he's had a tough time doing that but then he hit his stride and continued to throw the ball well. Tonight that didn't happen."
Happ said he "just didn't have it" on Saturday night.
"It's kind of what you'd call a nightmare," he said. "It's tough to end the season on that one. I'm going to try not to let it take away from what I feel like I accomplished this season, but it definitely takes away a lot of hard work across the stat line."
Jeff Baker reached on a throwing error by third baseman Chris Johnson in the fourth. Starlin Castro and Byrd hit consecutive singles to load the bases and set up Ramirez's slam. The shot to the Crawford Boxes in left field was the ninth grand slam of his career and his 20th home run at Minute Maid Park, the second-most in ballpark history.
The Astros had trouble getting anything going early in this one. Jason Castro singled with no outs in the third inning before Anderson Hernandez walked with one out. Angel Sanchez grounded into a double play to end that inning before Zambrano retired the next nine batters.
Zambrano said he's evolving as a pitcher as he gets older.
"I think I've found a formula to throw more sinkers instead of more velocity," he said. "Anytime I want to throw 93, 94 [mph] I can do it. Ninety-seven? I don't think so."
Houston didn't get another baserunner until Hunter Pence reached and advanced to second on an error by third baseman Bobby Scales with no outs in the seventh. Carlos Lee walked before Pence advanced to third on a wild pitch. Another walk loaded the bases before Johnson grounded into a force out that scored Pence.
That run broke a streak of 21 scoreless innings for the Astros, their longest drought since going 22 innings in 2006. It was the first run the Cubs allowed in 27 innings, the longest span for them since a 28-inning streak in June 2005.
Brett Wallace drove in a pair of runs with his double to center field that made it 8-3 later in the inning and chased Zambrano. The right-hander yielded three hits and two earned runs with five strikeouts.
"He was good," Quade said. "I feel terrible for [Scales] that we couldn't help [Zambrano] throw seven scoreless. But he pitched great again today. I'm not sure if that's the best movement I've seen from him, but I know Koyie [Hill] was scuffling to catch him a little bit."
Happ walked two Cubs with a single by Baker in between to load the bases with one out in the second inning. Byrd followed with a two-run single to push Chicago's lead to 4-0.
Baker drew a leadoff walk in the first before advancing to third on a ground-rule double by Castro. A sacrifice fly by Byrd made it 1-0. Happ walked Ramirez before Alfonso Soriano's two-out double scored Castro.Notes
Houston left-hander Wandy Rodriguez will not make his scheduled start Sunday because of back spasms. Rodriguez began feeling discomfort in his back Thursday and he hadn't recovered by Saturday, so the Astros replaced him with right-hander Nelson Figueroa. ... Houston is 58-52 since June 1 after going 17-34 through May.